]> git.ipfire.org Git - network.git/commitdiff
networkd: Implement reading configuration values
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Jan 2023 03:09:57 +0000 (03:09 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Jan 2023 03:09:57 +0000 (03:09 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/networkd/config.c
src/networkd/config.h

index 72a0cfbb2c597a9b7d1c91d9703f693332faf640..a3db7c65f81541212b2061ca7ef731f589319c6e 100644 (file)
@@ -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);
+}
index a793229ce9669b3625359a775f3f05a809eab296..c5a2f7f2ae4a7b1494afed1343ad675ae9486f43 100644 (file)
@@ -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 */