From: Roy Marples Date: Wed, 15 Nov 2017 14:51:48 +0000 (+0000) Subject: Init the signal handler ASAP so random stuff can be cleaned up. X-Git-Tag: v7.0.0-rc4~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53b368f46ba857634b0d71a6e18f4ee9b6c98eca;p=thirdparty%2Fdhcpcd.git Init the signal handler ASAP so random stuff can be cleaned up. --- diff --git a/src/dhcpcd.c b/src/dhcpcd.c index e677e4c6..a82cc449 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -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))