From: Roy Marples Date: Wed, 13 May 2009 18:14:50 +0000 (+0000) Subject: Enforce a minimum lease of 20 seconds so we can do things X-Git-Tag: v5.0.4~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fcc765366a95af9ab34956fb94ada8d00308ca2;p=thirdparty%2Fdhcpcd.git Enforce a minimum lease of 20 seconds so we can do things like ARP check and restart services. --- diff --git a/bind.c b/bind.c index 9e97a431..b428b881 100644 --- a/bind.c +++ b/bind.c @@ -49,6 +49,9 @@ # define _PATH_DEVNULL "/dev/null" #endif +/* We do things after aquiring the lease, so ensure we have enough time for them */ +#define DHCP_MIN_LEASE 20 + #ifndef THERE_IS_NO_FORK pid_t daemonise(void) @@ -164,6 +167,12 @@ bind_interface(void *arg) syslog(LOG_INFO, "%s: leased %s for infinity", iface->name, inet_ntoa(lease->addr)); } else { + if (lease->leasetime < DHCP_MIN_LEASE) { + syslog(LOG_WARNING, + "%s: minimum lease is %d seconds", + iface->name, DHCP_MIN_LEASE); + lease->leasetime = DHCP_MIN_LEASE; + } if (lease->rebindtime == 0) lease->rebindtime = lease->leasetime * T2; else if (lease->rebindtime >= lease->leasetime) {