X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.c;h=5ab9ba0bafd09d240e104e44970383f382808bbf;hb=e6674986de1985ab4f0733c9a909bdc42c1c3fa5;hp=c630ed7ed91aa6bae261a7ae5f3694a01aa5b4b6;hpb=bcbca8291fe3beaed36dd672d8b544840cfc49de;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index c630ed7ed..5ab9ba0ba 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -325,6 +325,7 @@ int manager_update_resolv_conf(Manager *m) { Link *link; Iterator i; unsigned count = 0; + const char *domainname = NULL; int r; assert(m); @@ -350,12 +351,20 @@ int manager_update_resolv_conf(Manager *m) { struct in_addr *nameservers; size_t nameservers_size; - r = sd_dhcp_client_get_dns(link->dhcp, &nameservers, &nameservers_size); - if (r >= 0) { - unsigned j; + if (link->network->dhcp_dns) { + r = sd_dhcp_client_get_dns(link->dhcp, &nameservers, &nameservers_size); + if (r >= 0) { + unsigned j; - for (j = 0; j < nameservers_size; j++) - append_dns(f, &nameservers[j], AF_INET, &count); + for (j = 0; j < nameservers_size; j++) + append_dns(f, &nameservers[j], AF_INET, &count); + } + } + + if (link->network->dhcp_domainname && !domainname) { + r = sd_dhcp_client_get_domainname(link->dhcp, &domainname); + if (r >= 0) + fprintf(f, "domain %s\n", domainname); } } }