From: Roy Marples Date: Thu, 22 Jan 2009 14:19:46 +0000 (+0000) Subject: Backport fix for #156. X-Git-Tag: v4.0.8~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2ddb0e68d36fd5a8f5cda944176a68de0a0ded2;p=thirdparty%2Fdhcpcd.git Backport fix for #156. --- diff --git a/client.c b/client.c index 864957be..d599d1bb 100644 --- a/client.c +++ b/client.c @@ -947,24 +947,24 @@ static int bind_dhcp(struct if_state *state, const struct options *options) state->state = STATE_BOUND; timerclear(&state->stop); } else { - if (lease->rebindtime >= lease->leasetime) { + if (lease->rebindtime == 0) + lease->rebindtime = lease->leasetime * T2; + else if (lease->rebindtime >= lease->leasetime) { lease->rebindtime = lease->leasetime * T2; logger(LOG_ERR, "rebind time greater than lease " "time, forcing to %u seconds", lease->rebindtime); } - if (lease->renewaltime > lease->rebindtime) { + if (lease->renewaltime == 0) + lease->renewaltime = lease->leasetime * T1; + else if (lease->renewaltime > lease->rebindtime) { lease->renewaltime = lease->leasetime * T1; logger(LOG_ERR, "renewal time greater than rebind time, " "forcing to %u seconds", lease->renewaltime); } - if (!lease->renewaltime) - lease->renewaltime = lease->leasetime * T1; - if (!lease->rebindtime) - lease->rebindtime = lease->leasetime * T2; logger(LOG_INFO, "leased %s for %u seconds", inet_ntoa(lease->addr), lease->leasetime);