From cdb0b652ddd6bfbc4d83e21453b3b4137b887e18 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 26 Sep 2008 09:34:15 +0000 Subject: dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..." --- networking/udhcp/dhcpc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'networking/udhcp') diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 92ebe36..4cc42ea 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; -- cgit v1.1