diff options
Diffstat (limited to 'networking/udhcp/dhcpc.c')
-rw-r--r-- | networking/udhcp/dhcpc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index ae40ec9c2..295486c98 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -118,14 +118,14 @@ static void perform_renew(void) | |||
118 | { | 118 | { |
119 | LOG(LOG_INFO, "Performing a DHCP renew"); | 119 | LOG(LOG_INFO, "Performing a DHCP renew"); |
120 | switch (state) { | 120 | switch (state) { |
121 | case RENEWING: | ||
122 | run_script(NULL, "deconfig"); | ||
123 | case BOUND: | 121 | case BOUND: |
124 | case REBINDING: | ||
125 | change_mode(LISTEN_KERNEL); | 122 | change_mode(LISTEN_KERNEL); |
123 | case RENEWING: | ||
124 | case REBINDING: | ||
126 | state = RENEW_REQUESTED; | 125 | state = RENEW_REQUESTED; |
127 | break; | 126 | break; |
128 | case RENEW_REQUESTED: | 127 | case RENEW_REQUESTED: /* impatient are we? fine, square 1 */ |
128 | run_script(NULL, "deconfig"); | ||
129 | case REQUESTING: | 129 | case REQUESTING: |
130 | case RELEASED: | 130 | case RELEASED: |
131 | change_mode(LISTEN_RAW); | 131 | change_mode(LISTEN_RAW); |
@@ -387,6 +387,7 @@ int main(int argc, char *argv[]) | |||
387 | packet_num++; | 387 | packet_num++; |
388 | } else { | 388 | } else { |
389 | /* timed out, go back to init state */ | 389 | /* timed out, go back to init state */ |
390 | if (state == RENEW_REQUESTED) run_script(NULL, "deconfig"); | ||
390 | state = INIT_SELECTING; | 391 | state = INIT_SELECTING; |
391 | timeout = now; | 392 | timeout = now; |
392 | packet_num = 0; | 393 | packet_num = 0; |