summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWen Liang <liangwen12year@gmail.com>2022-08-25 12:38:10 -0400
committerBeniamino Galvani <bgalvani@redhat.com>2023-01-11 09:05:36 +0100
commit0de9cf6dfaa6c28ae1347547b6beddf63d237bb9 (patch)
treee1e7066a6333240f08c987ac9d6624cc36d8acc2
parent63a8cec1b120a747b2b72a49eed038f735119d02 (diff)
parentb97b12ed9474be85f393fd9f0e503973a9f824b5 (diff)
dns: merge branch "wl/dns"
https://bugzilla.redhat.com/show_bug.cgi?id=2120763 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1344 (cherry picked from commit a5d8f8321f5b742f0b2c31fca68877d362a2622d)
-rw-r--r--src/core/dns/nm-dns-dnsmasq.c11
-rw-r--r--src/core/dns/nm-dns-dnsmasq.h2
-rw-r--r--src/core/dns/nm-dns-manager.c3
3 files changed, 15 insertions, 1 deletions
diff --git a/src/core/dns/nm-dns-dnsmasq.c b/src/core/dns/nm-dns-dnsmasq.c
index 7d0f0490e0..cc7c03a21b 100644
--- a/src/core/dns/nm-dns-dnsmasq.c
+++ b/src/core/dns/nm-dns-dnsmasq.c
@@ -191,7 +191,8 @@ _gl_pid_kill_external(void)
if (!g_file_get_contents(PIDFILE, &contents, NULL, &error)) {
if (g_error_matches(error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
do_unlink = FALSE;
- _LOGD("spawn: failure to read pidfile %s: %s", PIDFILE, error->message);
+ else
+ _LOGD("spawn: failure to read pidfile %s: %s", PIDFILE, error->message);
g_clear_error(&error);
goto handle_kill;
}
@@ -667,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 a2fead3f35..edb8ce0f15 100644
--- a/src/core/dns/nm-dns-manager.c
+++ b/src/core/dns/nm-dns-manager.c
@@ -2513,6 +2513,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));