changeset 4184:548f1baa118d draft

Init the signal handler ASAP so random stuff can be cleaned up.
author Roy Marples <roy@marples.name>
date Wed, 15 Nov 2017 14:51:48 +0000
parents 115cbfa711e2
children 70572d63d4f2
files src/dhcpcd.c
diffstat 1 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/dhcpcd.c	Tue Nov 14 16:41:59 2017 +0000
+++ b/src/dhcpcd.c	Wed Nov 15 14:51:48 2017 +0000
@@ -1653,6 +1653,20 @@
 		logerr("%s: eloop_init", __func__);
 		goto exit_failure;
 	}
+#ifdef USE_SIGNALS
+	/* Save signal mask, block and redirect signals to our handler */
+	if (eloop_signal_set_cb(ctx.eloop,
+	    dhcpcd_signals, dhcpcd_signals_len,
+	    signal_cb, &ctx) == -1)
+	{
+		logerr("%s: eloop_signal_set_cb", __func__);
+		goto exit_failure;
+	}
+	if (eloop_signal_mask(ctx.eloop, &ctx.sigset) == -1) {
+		logerr("%s: eloop_signal_mask", __func__);
+		goto exit_failure;
+	}
+#endif
 
 	if (ctx.options & DHCPCD_DUMPLEASE) {
 		/* Open sockets so we can dump something about
@@ -1813,21 +1827,6 @@
 		goto exit_failure;
 	}
 
-#ifdef USE_SIGNALS
-	if (eloop_signal_set_cb(ctx.eloop,
-	    dhcpcd_signals, dhcpcd_signals_len,
-	    signal_cb, &ctx) == -1)
-	{
-		logerr("%s: eloop_signal_set_cb", __func__);
-		goto exit_failure;
-	}
-	/* Save signal mask, block and redirect signals to our handler */
-	if (eloop_signal_mask(ctx.eloop, &ctx.sigset) == -1) {
-		logerr("%s: eloop_signal_mask", __func__);
-		goto exit_failure;
-	}
-#endif
-
 	/* When running dhcpcd against a single interface, we need to retain
 	 * the old behaviour of waiting for an IP address */
 	if (ctx.ifc == 1 && !(ctx.options & DHCPCD_BACKGROUND))