From 1c27ee350d665660f82638e24386165d28c75108 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 (cherry picked from commit 37eed6984bff6bd8dd903d480dc260005eabd132) --- 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 973abc1c1b..dc54547023 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -1448,11 +1448,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);