From: Roy Marples Date: Thu, 27 Nov 2008 09:46:28 +0000 (+0000) Subject: If an interface link fd flaps, don't indiscriminately reset the timeout timer. Thanks... X-Git-Tag: v4.0.7~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e61481a0165952aa68c7dc09af3f739da2e6acfa;p=thirdparty%2Fdhcpcd.git If an interface link fd flaps, don't indiscriminately reset the timeout timer. Thanks to Jean Wolter for tracking it down. --- diff --git a/client.c b/client.c index 94567500..864957be 100644 --- a/client.c +++ b/client.c @@ -1736,7 +1736,6 @@ handle_link(struct if_state *state) if (retval == 0) return 0; - timerclear(&state->timeout); switch (carrier_status(state->interface->name)) { case -1: logger(LOG_ERR, "carrier_status: %s", strerror(errno)); @@ -1746,6 +1745,7 @@ handle_link(struct if_state *state) logger(LOG_INFO, "carrier lost"); state->carrier = LINK_DOWN; do_socket(state, SOCKET_CLOSED); + timerclear(&state->timeout); if (state->state != STATE_BOUND) timerclear(&state->stop); } @@ -1755,6 +1755,7 @@ handle_link(struct if_state *state) logger(LOG_INFO, "carrier acquired"); state->state = STATE_RENEW_REQUESTED; state->carrier = LINK_UP; + timerclear(&state->timeout); timerclear(&state->stop); return 1; }