summaryrefslogtreecommitdiffstats
path: root/dhcpcd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2010-06-26 09:17:54 +0000
committerRoy Marples <roy@marples.name>2010-06-26 09:17:54 +0000
commitc3ec600b3c6b7f811610c9204cf9cbfd73973cb9 (patch)
treee00fec33dc2322d0e31f6d55c4482144f563875b /dhcpcd.c
parent49f2854719ec6543cee7bf7584c3f08bd688251a (diff)
downloaddhcpcd-c3ec600b3c6b7f811610c9204cf9cbfd73973cb9.tar.xz
Always daemonise on timeout if running in master mode.
Diffstat (limited to 'dhcpcd.c')
-rw-r--r--dhcpcd.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index cb33929e..11db53af 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -198,8 +198,13 @@ handle_exit_timeout(_unused void *arg)
struct interface *ifp;
syslog(LOG_ERR, "timed out");
- if (!(options & DHCPCD_TIMEOUT_IPV4LL))
- exit(EXIT_FAILURE);
+ if (!(options & DHCPCD_TIMEOUT_IPV4LL)) {
+ if (options & DHCPCD_MASTER) {
+ daemonise();
+ return;
+ } else
+ exit(EXIT_FAILURE);
+ }
options &= ~DHCPCD_TIMEOUT_IPV4LL;
timeout = (PROBE_NUM * PROBE_MAX) + PROBE_WAIT + 1;
/* Add an extra second per interface */