]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Close socket on error and signal so that they get refreshed.
authorRoy Marples <roy@marples.name>
Tue, 15 Jul 2008 19:16:58 +0000 (19:16 +0000)
committerRoy Marples <roy@marples.name>
Tue, 15 Jul 2008 19:16:58 +0000 (19:16 +0000)
client.c

index 42b4ecfb785d62ad4b206a6142b0f377f5c069ab..5458aac795be40d24572e48b946b4177733126ee 100644 (file)
--- a/client.c
+++ b/client.c
@@ -791,6 +791,7 @@ wait_again:
                while (--nfds > 0) {
                        if (fds[nfds].revents & POLLERR) {
                                logger(LOG_ERR, "error on fd %d", fds[nfds].fd);
+                               do_socket(state, SOCKET_CLOSED);
                                switch (state->state) {
                                case STATE_INIT:        /* FALLTHROUGH */
                                case STATE_DISCOVERING: /* FALLTHROUGH */
@@ -839,6 +840,7 @@ handle_signal(int sig, struct if_state *state,  const struct options *options)
                return 0;
        }
 
+       do_socket(state, SOCKET_CLOSED);
        switch (state->state) {
        case STATE_INIT:
        case STATE_PROBING: