diff options
| author | Roy Marples <roy@marples.name> | 2017-11-15 14:51:48 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2017-11-15 14:51:48 +0000 |
| commit | 463c05a701caae7cec677556022ddc5c910f21ba (patch) | |
| tree | 6ec09f33e7fa63977161200e85b77fb50ee0ecc2 /src/dhcpcd.c | |
| parent | ae715b1be3d1df1202af6c6f6923a40b07c9ea3c (diff) | |
| download | dhcpcd-463c05a701caae7cec677556022ddc5c910f21ba.tar.xz | |
Init the signal handler ASAP so random stuff can be cleaned up.
Diffstat (limited to 'src/dhcpcd.c')
| -rw-r--r-- | src/dhcpcd.c | 29 |
1 files changed, 14 insertions, 15 deletions
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)) |
