]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Init the signal handler ASAP so random stuff can be cleaned up.
authorRoy Marples <roy@marples.name>
Wed, 15 Nov 2017 14:51:48 +0000 (14:51 +0000)
committerRoy Marples <roy@marples.name>
Wed, 15 Nov 2017 14:51:48 +0000 (14:51 +0000)
src/dhcpcd.c

index e677e4c62a0a32a2ec3f644117b9a7277d56440c..a82cc44974a9c9cdbbaa7fd4838a254eeeec6b94 100644 (file)
@@ -1653,6 +1653,20 @@ printpidfile:
                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 @@ printpidfile:
                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))