From: Stefan Schantl Date: Sat, 5 Sep 2015 19:44:07 +0000 (+0200) Subject: dns: Better propagate known DNS servers X-Git-Tag: 007~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bf98f6fcb22f9b7418b508acb95a9f5f22a887aa;p=network.git dns: Better propagate known DNS servers dns_servers_update() is a new function that must be called when ever there are changes to the DNS server configuration. This may be by the user or by learning new DNS servers from a dial-up connection, etc. Signed-off-by: Stefan Schantl Signed-off-by: Michael Tremer --- diff --git a/src/dhclient-script b/src/dhclient-script index fd5c6f13..9d18dba2 100644 --- a/src/dhclient-script +++ b/src/dhclient-script @@ -91,7 +91,7 @@ case "${reason}" in # Update nameservers if those have changed if [[ "${old_dhcp6_name_servers}" != "${new_dhcp6_name_servers}" ]]; then db_set "${interface}/ipv6/domain-name-servers" "${new_dhcp6_name_servers}" - dns_generate_resolvconf + dns_server_update fi # Update the lifetime if the address has not changed @@ -247,8 +247,8 @@ case "${reason}" in routing_update ${interface} ipv4 routing_default_update - # Update resolv.conf - dns_generate_resolvconf + # Update DNS configuration + dns_server_update fi ;; esac diff --git a/src/functions/functions.dns b/src/functions/functions.dns index 50354689..a54feecd 100644 --- a/src/functions/functions.dns +++ b/src/functions/functions.dns @@ -225,6 +225,16 @@ dns_server_parse_line() { return ${EXIT_OK} } +# This function should be called after any configuration +# changes have been made to the DNS servers. +dns_server_update() { + # Regenerate /etc/resolv.conf + dns_generate_resolvconf + + # Restart radvd which propagates IPv6 DNS servers + radvd_update +} + # Update resolv.conf(5) when initializing the network. init_register dns_generate_resolvconf diff --git a/src/network b/src/network index 12e9742f..4d23e504 100644 --- a/src/network +++ b/src/network @@ -1245,8 +1245,7 @@ cli_dns_server() { esac # Update the local DNS configuration after changes have been made. - dns_generate_resolvconf - radvd_update + dns_server_update exit ${EXIT_OK} }