From 37eed6984bff6bd8dd903d480dc260005eabd132 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Thu, 8 Feb 2018 18:12:26 +0100 Subject: [PATCH] dns: on quit only update resolv.conf if dns=dnsmasq Previously we always updated resolv.conf on quit. When we are using systemd-resolved the update is not necessary because the resolver on 127.0.0.53 would still be reachable after NM quits. Also, when NM manages resolv.conf directly there is no need to update the file again. Let's rewrite resolv.conf only when using dnsmasq. https://bugzilla.redhat.com/show_bug.cgi?id=1541031 --- src/dns/nm-dns-manager.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index e5d83cdc05..7046aee9bf 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -1556,11 +1556,13 @@ nm_dns_manager_stop (NMDnsManager *self) _LOGT ("stopping..."); /* If we're quitting, leave a valid resolv.conf in place, not one - * pointing to 127.0.0.1 if any plugins were active. Thus update - * DNS after disposing of all plugins. But if we haven't done any - * DNS updates yet, there's no reason to touch resolv.conf on shutdown. + * pointing to 127.0.0.1 if dnsmasq was active. But if we haven't + * done any DNS updates yet, there's no reason to touch resolv.conf + * on shutdown. */ - if (priv->dns_touched) { + if ( priv->dns_touched + && priv->plugin + && NM_IS_DNS_DNSMASQ (priv->plugin)) { if (!update_dns (self, TRUE, &error)) { _LOGW ("could not commit DNS changes on shutdown: %s", error->message); g_clear_error (&error);