summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/dns/nm-dns-dnsmasq.c8
-rw-r--r--src/core/dns/nm-dns-dnsmasq.h2
-rw-r--r--src/core/dns/nm-dns-manager.c3
3 files changed, 13 insertions, 0 deletions
diff --git a/src/core/dns/nm-dns-dnsmasq.c b/src/core/dns/nm-dns-dnsmasq.c
index d88d3de681..cc7c03a21b 100644
--- a/src/core/dns/nm-dns-dnsmasq.c
+++ b/src/core/dns/nm-dns-dnsmasq.c
@@ -668,6 +668,14 @@ _gl_pid_spawn(const char *dm_binary,
/*****************************************************************************/
+void
+nm_dnsmasq_kill_external(void)
+{
+ _gl_pid_kill_external();
+}
+
+/*****************************************************************************/
+
typedef struct {
GDBusConnection *dbus_connection;
diff --git a/src/core/dns/nm-dns-dnsmasq.h b/src/core/dns/nm-dns-dnsmasq.h
index 575b0b263f..98761d3d9f 100644
--- a/src/core/dns/nm-dns-dnsmasq.h
+++ b/src/core/dns/nm-dns-dnsmasq.h
@@ -25,4 +25,6 @@ GType nm_dns_dnsmasq_get_type(void);
NMDnsPlugin *nm_dns_dnsmasq_new(void);
+void nm_dnsmasq_kill_external(void);
+
#endif /* __NETWORKMANAGER_DNS_DNSMASQ_H__ */
diff --git a/src/core/dns/nm-dns-manager.c b/src/core/dns/nm-dns-manager.c
index 1e54452aa4..16af1d2dfe 100644
--- a/src/core/dns/nm-dns-manager.c
+++ b/src/core/dns/nm-dns-manager.c
@@ -2506,6 +2506,9 @@ again:
self);
}
+ if (!NM_IS_DNS_DNSMASQ(priv->plugin))
+ nm_dnsmasq_kill_external();
+
_update_pending_maybe_changed(self);
g_object_thaw_notify(G_OBJECT(self));