udhcpc[6]: allow discover_retries == 0 (infinite)
authorFelix Fietkau <nbd@openwrt.org>
Thu, 27 Sep 2012 14:22:24 +0000 (16:22 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 27 Sep 2012 14:22:24 +0000 (16:22 +0200)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/udhcp/d6_dhcpc.c
networking/udhcp/dhcpc.c

index dda4a91..c44220b 100644 (file)
@@ -1111,7 +1111,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
 
                        switch (state) {
                        case INIT_SELECTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        if (packet_num == 0)
                                                xid = random_xid();
                                        /* multicast */
@@ -1140,7 +1140,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
                                packet_num = 0;
                                continue;
                        case REQUESTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        /* send multicast select packet */
                                        send_d6_select(xid);
                                        timeout = discover_timeout;
index dcb7d42..f72217c 100644 (file)
@@ -1442,7 +1442,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
 
                        switch (state) {
                        case INIT_SELECTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        if (packet_num == 0)
                                                xid = random_xid();
                                        /* broadcast */
@@ -1471,7 +1471,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
                                packet_num = 0;
                                continue;
                        case REQUESTING:
-                               if (packet_num < discover_retries) {
+                               if (!discover_retries || packet_num < discover_retries) {
                                        /* send broadcast select packet */
                                        send_select(xid, server_addr, requested_ip);
                                        timeout = discover_timeout;