summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-01-22 14:19:46 +0000
committerRoy Marples <roy@marples.name>2009-01-22 14:19:46 +0000
commitd2ddb0e68d36fd5a8f5cda944176a68de0a0ded2 (patch)
treeb06ab9995bc8e612ce5b1e9ce152f7d896fe9908
parenta553e02ebd315a65b29344fc05b29e19bdf05f7c (diff)
downloaddhcpcd-d2ddb0e68d36fd5a8f5cda944176a68de0a0ded2.tar.xz
Backport fix for #156.
-rw-r--r--client.c12
1 files changed, 6 insertions, 6 deletions
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);