summary refs log tree commit diff
path: root/src/dhcp-manager/nm-dhcp-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcp-manager/nm-dhcp-client.c')
-rw-r--r--src/dhcp-manager/nm-dhcp-client.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/dhcp-manager/nm-dhcp-client.c b/src/dhcp-manager/nm-dhcp-client.c
index 4c19b300..3418bf3b 100644
--- a/src/dhcp-manager/nm-dhcp-client.c
+++ b/src/dhcp-manager/nm-dhcp-client.c
@@ -136,10 +136,10 @@ watch_cleanup (NMDHCPClient *self)
 	}
 }
 
-static void
-stop_process (GPid pid, const char *iface)
+void
+nm_dhcp_client_stop_pid (GPid pid, const char *iface, guint timeout_secs)
 {
-	int i = 15; /* 3 seconds */
+	int i = (timeout_secs ? timeout_secs : 3) * 5;  /* default 3 seconds */
 
 	g_return_if_fail (pid > 0);
 
@@ -183,7 +183,7 @@ stop_process (GPid pid, const char *iface)
 }
 
 static void
-real_stop (NMDHCPClient *self)
+real_stop (NMDHCPClient *self, gboolean release)
 {
 	NMDHCPClientPrivate *priv;
 
@@ -196,7 +196,7 @@ real_stop (NMDHCPClient *self)
 	/* Clean up the watch handler since we're explicitly killing the daemon */
 	watch_cleanup (self);
 
-	stop_process (priv->pid, priv->iface);
+	nm_dhcp_client_stop_pid (priv->pid, priv->iface, 0);
 
 	priv->info_only = FALSE;
 }
@@ -376,7 +376,7 @@ nm_dhcp_client_stop_existing (const char *pid_file, const char *binary_name)
 				exe = proc_contents;
 
 			if (!strcmp (exe, binary_name))
-				stop_process ((GPid) tmp, NULL);
+				nm_dhcp_client_stop_pid ((GPid) tmp, NULL, 0);
 		}
 	}
 
@@ -387,7 +387,7 @@ nm_dhcp_client_stop_existing (const char *pid_file, const char *binary_name)
 }
 
 void
-nm_dhcp_client_stop (NMDHCPClient *self)
+nm_dhcp_client_stop (NMDHCPClient *self, gboolean release)
 {
 	NMDHCPClientPrivate *priv;
 
@@ -398,7 +398,7 @@ nm_dhcp_client_stop (NMDHCPClient *self)
 
 	/* Kill the DHCP client */
 	if (!priv->dead) {
-		NM_DHCP_CLIENT_GET_CLASS (self)->stop (self);
+		NM_DHCP_CLIENT_GET_CLASS (self)->stop (self, release);
 		priv->dead = TRUE;
 
 		nm_log_info (LOGD_DHCP, "(%s): canceled DHCP transaction, DHCP client pid %d",