chiark / gitweb /
sd-rtnl: introduce sd_rtnl_new_from_netlink
[elogind.git] / src / resolve / resolved-conf.c
index ae3773f4f7cd7d3d4f8e5bfceaacd43d0ff89219..7af63b0a82289ba7e49d9e5988c39b5bf48c2ffb 100644 (file)
@@ -81,7 +81,6 @@ int config_parse_dnsv(
                 void *userdata) {
 
         Manager *m = userdata;
-        DnsServer **l;
         int r;
 
         assert(filename);
@@ -89,19 +88,10 @@ int config_parse_dnsv(
         assert(rvalue);
         assert(m);
 
-        if (ltype == DNS_SERVER_FALLBACK)
-                l = &m->fallback_dns_servers;
-        else
-                l = &m->dns_servers;
-
-        if (isempty(rvalue)) {
-
+        if (isempty(rvalue))
                 /* Empty assignment means clear the list */
-                while (*l)
-                        dns_server_free(*l);
-
-        } else {
-
+                manager_flush_dns_servers(m, ltype);
+        else {
                 /* Otherwise add to the list */
                 r = manager_parse_dns_server(m, ltype, rvalue);
                 if (r < 0) {
@@ -130,14 +120,12 @@ int config_parse_support(
                 void *data,
                 void *userdata) {
 
-        Manager *m = userdata;
         Support support, *v = data;
         int r;
 
         assert(filename);
         assert(lvalue);
         assert(rvalue);
-        assert(m);
 
         support = support_from_string(rvalue);
         if (support < 0) {
@@ -157,8 +145,9 @@ int config_parse_support(
 int manager_parse_config_file(Manager *m) {
         assert(m);
 
-        return config_parse(NULL, "/etc/systemd/resolved.conf", NULL,
-                            "Resolve\0",
-                            config_item_perf_lookup, resolved_gperf_lookup,
-                            false, false, true, m);
+        return config_parse_many("/etc/systemd/resolved.conf",
+                                 CONF_DIRS_NULSTR("systemd/resolved.conf"),
+                                 "Resolve\0",
+                                 config_item_perf_lookup, resolved_gperf_lookup,
+                                 false, m);
 }