chiark / gitweb /
hostnamed: make use of in_charset() to verify charset
[elogind.git] / src / resolve / resolved-manager.c
index 3ed0603f9b2f9b26ac3bd42c462424916df70093..b4f4d07147f08ddb132c828efae71d447b47b87e 100644 (file)
@@ -97,23 +97,13 @@ int config_parse_dnsv(
 }
 
 static int manager_parse_config_file(Manager *m) {
-        static const char fn[] = "/etc/systemd/resolved.conf";
-        _cleanup_fclose_ FILE *f = NULL;
         int r;
 
         assert(m);
 
-        f = fopen(fn, "re");
-        if (!f) {
-                if (errno == ENOENT)
-                        return 0;
-
-                log_warning("Failed to open configuration file %s: %m", fn);
-                return -errno;
-        }
-
-        r = config_parse(NULL, fn, f, "Resolve\0", config_item_perf_lookup,
-                         (void*) resolved_gperf_lookup, false, false, m);
+        r = config_parse(NULL, "/etc/systemd/resolved.conf", NULL,
+                         "Resolve\0", config_item_perf_lookup, (void*) resolved_gperf_lookup,
+                         false, false, m);
         if (r < 0)
                 log_warning("Failed to parse configuration file: %s", strerror(-r));
 
@@ -124,6 +114,8 @@ int manager_new(Manager **ret) {
         _cleanup_manager_free_ Manager *m = NULL;
         int r;
 
+        assert(ret);
+
         m = new0(Manager, 1);
         if (!m)
                 return -ENOMEM;
@@ -157,6 +149,8 @@ void manager_free(Manager *m) {
         if (!m)
                 return;
 
+        sd_event_source_unref(m->network_event_source);
+        sd_network_monitor_unref(m->network_monitor);
         sd_event_unref(m->event);
 
         while ((address = m->fallback_dns)) {