#include "dhcp-lease-internal.h"
#include "network-internal.h"
#include "conf-parser.h"
-#include "mkdir.h"
static int set_fallback_dns(Manager *m, const char *string) {
char *word, *state;
}
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));
_cleanup_manager_free_ Manager *m = NULL;
int r;
+ assert(ret);
+
m = new0(Manager, 1);
if (!m)
return -ENOMEM;
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)) {
}
int manager_update_resolv_conf(Manager *m) {
+ const char *path = "/run/systemd/resolve/resolv.conf";
_cleanup_free_ char *temp_path = NULL;
_cleanup_fclose_ FILE *f = NULL;
_cleanup_free_ unsigned *indices = NULL;
assert(m);
- r = fopen_temporary("/run/systemd/network/resolv.conf", &f, &temp_path);
+ r = fopen_temporary(path, &f, &temp_path);
if (r < 0)
return r;
fflush(f);
- if (ferror(f) || rename(temp_path, "/run/systemd/network/resolv.conf") < 0) {
+ if (ferror(f) || rename(temp_path, path) < 0) {
r = -errno;
- unlink("/run/systemd/network/resolv.conf");
+ unlink(path);
unlink(temp_path);
return r;
}