]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
If an interface link fd flaps, don't indiscriminately reset the timeout timer. Thanks...
authorRoy Marples <roy@marples.name>
Thu, 27 Nov 2008 09:46:28 +0000 (09:46 +0000)
committerRoy Marples <roy@marples.name>
Thu, 27 Nov 2008 09:46:28 +0000 (09:46 +0000)
client.c

index 9456750030f09a06fc6a387da9610623dd03ceb3..864957beccf58750d18802924e58068a057f8316 100644 (file)
--- 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;
                }