From: Denis Vlasenko Date: Fri, 26 Sep 2008 09:34:15 +0000 (-0000) Subject: dhcpc: treat "discover...select...discover..." loop the same way X-Git-Tag: 1_13_0~160 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cdb0b652ddd6bfbc4d83e21453b3b4137b887e18;p=oweals%2Fbusybox.git dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..." --- diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 92ebe3676..4cc42eae0 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -363,6 +363,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) packet_num++; continue; } + leasefail: udhcp_run_script(NULL, "leasefail"); #if BB_MMU /* -b is not supported on NOMMU */ if (opt & OPT_b) { /* background if no lease */ @@ -399,6 +400,11 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_RAW); state = INIT_SELECTING; + /* "discover...select...discover..." loops + * were seen in the wild. Treat then similarly + * to "no response to discover" case */ + if (state == REQUESTING) + goto leasefail; timeout = 0; packet_num = 0; continue;