summaryrefslogtreecommitdiffstats
path: root/src/dhcpcd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2017-11-15 14:51:48 +0000
committerRoy Marples <roy@marples.name>2017-11-15 14:51:48 +0000
commit463c05a701caae7cec677556022ddc5c910f21ba (patch)
tree6ec09f33e7fa63977161200e85b77fb50ee0ecc2 /src/dhcpcd.c
parentae715b1be3d1df1202af6c6f6923a40b07c9ea3c (diff)
downloaddhcpcd-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.c29
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))