X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.c;h=ea414b1f1e3b5e74f7f0ff90c2a12782c09f5286;hb=4dd5da7f7d37f964fe95b0f0d451d7843a34591d;hp=c89adfba4f84373d536c5ee63d2adc39c0a73076;hpb=0c2f9b84698b25e6065b9febd21486669a13870f;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index c89adfba4..ea414b1f1 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -33,7 +33,7 @@ const char* const network_dirs[] = { "/etc/systemd/network", "/run/systemd/network", "/usr/lib/systemd/network", -#ifdef HAVE_SPLIT_USER +#ifdef HAVE_SPLIT_USR "/lib/systemd/network", #endif NULL}; @@ -303,7 +303,7 @@ int manager_udev_listen(Manager *m) { static int manager_rtnl_process_link(sd_rtnl *rtnl, sd_rtnl_message *message, void *userdata) { Manager *m = userdata; Link *link; - const char *name; + char *name; int r, ifindex; assert(rtnl); @@ -316,7 +316,7 @@ static int manager_rtnl_process_link(sd_rtnl *rtnl, sd_rtnl_message *message, vo return 0; } - r = rtnl_message_link_get_ifname(message, &name); + r = sd_rtnl_message_read_string(message, IFLA_IFNAME, &name); if (r < 0) log_debug("received RTM_NEWLINK message without valid IFLA_IFNAME"); else { @@ -407,10 +407,6 @@ int manager_update_resolv_conf(Manager *m) { assert(m); - r = mkdir_safe_label("/run/systemd/network", 0755, 0, 0); - if (r < 0) - return r; - r = fopen_temporary("/run/systemd/network/resolv.conf", &f, &temp_path); if (r < 0) return r; @@ -446,10 +442,17 @@ int manager_update_resolv_conf(Manager *m) { } } - HASHMAP_FOREACH(link, m->links, i) - if (link->network && link->network->dns) - append_dns(f, &link->network->dns->in_addr.in, - link->network->dns->family, &count); + HASHMAP_FOREACH(link, m->links, i) { + if (link->network && link->network->dns) { + Address *address; + Iterator j; + + SET_FOREACH(address, link->network->dns, j) { + append_dns(f, &address->in_addr.in, + address->family, &count); + } + } + } fflush(f);