diff options
| author | Michael Biebl <biebl@debian.org> | 2015-01-22 00:29:39 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2015-01-22 00:29:39 +0100 |
| commit | 2c032d8f1c6292c1338a615e6ec40252889ba85c (patch) | |
| tree | 1f77182220b2b0264288ba4a476ab47e5bc48716 /src/dns-manager/nm-dns-plugin.c | |
| parent | 33491bc4279481db8ae47213e34a6d695a0e8830 (diff) | |
Imported Upstream version 1.0.0 upstream/1.0.0
Diffstat (limited to 'src/dns-manager/nm-dns-plugin.c')
| -rw-r--r-- | src/dns-manager/nm-dns-plugin.c | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/src/dns-manager/nm-dns-plugin.c b/src/dns-manager/nm-dns-plugin.c index e85b2a09..b083b105 100644 --- a/src/dns-manager/nm-dns-plugin.c +++ b/src/dns-manager/nm-dns-plugin.c @@ -17,7 +17,8 @@ * */ -#include <config.h> +#include "config.h" + #include <string.h> #include <stdlib.h> #include <unistd.h> @@ -28,6 +29,7 @@ #include "nm-dns-plugin.h" #include "nm-logging.h" #include "nm-posix-signals.h" +#include "NetworkManagerUtils.h" typedef struct { gboolean disposed; @@ -196,29 +198,6 @@ nm_dns_plugin_child_spawn (NMDnsPlugin *self, return priv->pid; } -typedef struct { - int pid; - char *progname; -} KillInfo; - -static gboolean -ensure_killed (gpointer data) -{ - KillInfo *info = data; - - if (kill (info->pid, 0) == 0) - kill (info->pid, SIGKILL); - - /* ensure the child is reaped */ - nm_log_dbg (LOGD_DNS, "waiting for %s pid %d to exit", info->progname, info->pid); - waitpid (info->pid, NULL, 0); - nm_log_dbg (LOGD_DNS, "dnsmasq pid %d cleaned up", info->pid); - - g_free (info->progname); - g_free (info); - return FALSE; -} - gboolean nm_dns_plugin_child_kill (NMDnsPlugin *self) { NMDnsPluginPrivate *priv = NM_DNS_PLUGIN_GET_PRIVATE (self); @@ -229,21 +208,7 @@ gboolean nm_dns_plugin_child_kill (NMDnsPlugin *self) } if (priv->pid) { - KillInfo *info; - - if (kill (priv->pid, SIGTERM) == 0) { - info = g_malloc0 (sizeof (KillInfo)); - info->pid = priv->pid; - info->progname = g_strdup (priv->progname); - g_timeout_add_seconds (2, ensure_killed, info); - } else { - kill (priv->pid, SIGKILL); - - /* ensure the child is reaped */ - nm_log_dbg (LOGD_DNS, "waiting for %s pid %d to exit", priv->progname, priv->pid); - waitpid (priv->pid, NULL, 0); - nm_log_dbg (LOGD_DNS, "%s pid %d cleaned up", priv->progname, priv->pid); - } + nm_utils_kill_child_async (priv->pid, SIGTERM, LOGD_DNS, priv->progname, 2000, NULL, NULL); priv->pid = 0; g_free (priv->progname); priv->progname = NULL; |