}
if (IN_LINKLOCAL(htonl(state->new->yiaddr))) {
/* We should pretend to be at the end
- * of the DHCP negotation cycle */
- state->interval = 64;
+ * of the DHCP negotation cycle unless we rebooted */
+ if (state->interval != 0)
+ state->interval = 64;
state->probes = 0;
state->claims = 0;
tv.tv_sec = state->interval - DHCP_RAND_MIN;
{
struct interface *iface = arg;
+ iface->state->interval = 0;
if (iface->addr.s_addr == 0) {
/* We failed to reboot, so enter discovery. */
- iface->state->interval = 0;
start_discover(iface);
return;
}
delete_timeout(NULL, iface);
drop_config(iface, "EXPIRE");
unlink(iface->leasefile);
- iface->state->interval = 0;
if (iface->carrier != LINK_DOWN)
start_interface(iface);
}