From: Michael Tremer Date: Mon, 30 Jan 2023 03:09:57 +0000 (+0000) Subject: networkd: Implement reading configuration values X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d39683a626fd7f5fe2aea15365a27b3f7727ad0b;p=network.git networkd: Implement reading configuration values Signed-off-by: Michael Tremer --- diff --git a/src/networkd/config.c b/src/networkd/config.c index 72a0cfbb..a3db7c65 100644 --- a/src/networkd/config.c +++ b/src/networkd/config.c @@ -220,3 +220,24 @@ int nw_config_set(struct nw_config* config, const char* key, const char* value) // Store the new value return nw_string_set(entry->value, value); } + +const char* nw_config_get(struct nw_config* config, const char* key) { + struct nw_config_entry* entry = nw_config_find(config, key); + + // Return the value if found and set + if (entry && *entry->value) + return entry->value; + + // Otherwise return NULL + return NULL; +} + +unsigned int nw_config_get_unsigned_int(struct nw_config* config, const char* key) { + const char* value = nw_config_get(config, key); + + // Return zero if not set + if (!value) + return 0; + + return strtoul(value, NULL, 10); +} diff --git a/src/networkd/config.h b/src/networkd/config.h index a793229c..c5a2f7f2 100644 --- a/src/networkd/config.h +++ b/src/networkd/config.h @@ -38,4 +38,7 @@ int nw_config_del(struct nw_config* config, const char* key); int nw_config_set(struct nw_config* config, const char* key, const char* value); +const char* nw_config_get(struct nw_config* config, const char* key); +unsigned int nw_config_get_unsigned_int(struct nw_config* config, const char* key); + #endif /* NETWORKD_CONFIG_H */