aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/d6_dhcpc.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-09-28 14:44:09 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2018-09-28 14:44:09 +0200
commitaae428f0bf0fcd6cd0a2503b3a50de43785b8fd0 (patch)
treeea72c9526278a93caa1d73c1a469e00fba3b980a /networking/udhcp/d6_dhcpc.c
parent702d865fe6ab84c1179275beda6c31f7adaeafa1 (diff)
downloadbusybox-w32-aae428f0bf0fcd6cd0a2503b3a50de43785b8fd0.tar.gz
busybox-w32-aae428f0bf0fcd6cd0a2503b3a50de43785b8fd0.tar.bz2
busybox-w32-aae428f0bf0fcd6cd0a2503b3a50de43785b8fd0.zip
udhcpc: give SIGUSR1-induced renew one chance of unicast renew
The caps were inconsistent: timeout to renew was capped at 20 seconds, and any renews with timeout <= 60 seconds were forced to broadcast. function old new delta udhcpc_main 2683 2680 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/udhcp/d6_dhcpc.c')
-rw-r--r--networking/udhcp/d6_dhcpc.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index ed2255ef3..66e4b6c6a 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -1405,7 +1405,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
1405 case RENEW_REQUESTED: /* manual (SIGUSR1) renew */ 1405 case RENEW_REQUESTED: /* manual (SIGUSR1) renew */
1406 case_RENEW_REQUESTED: 1406 case_RENEW_REQUESTED:
1407 case RENEWING: 1407 case RENEWING:
1408 if (timeout > 60) { 1408 if (timeout >= 60) {
1409 /* send an unicast renew request */ 1409 /* send an unicast renew request */
1410 /* Sometimes observed to fail (EADDRNOTAVAIL) to bind 1410 /* Sometimes observed to fail (EADDRNOTAVAIL) to bind
1411 * a new UDP socket for sending inside send_renew. 1411 * a new UDP socket for sending inside send_renew.
@@ -1465,11 +1465,9 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
1465 * For the second case, must make sure timeout 1465 * For the second case, must make sure timeout
1466 * is not too big, or else we can send 1466 * is not too big, or else we can send
1467 * futile renew requests for hours. 1467 * futile renew requests for hours.
1468 * (Ab)use -A TIMEOUT value (usually 20 sec)
1469 * as a cap on the timeout.
1470 */ 1468 */
1471 if (timeout > tryagain_timeout) 1469 if (timeout > 60)
1472 timeout = tryagain_timeout; 1470 timeout = 60;
1473 goto case_RENEW_REQUESTED; 1471 goto case_RENEW_REQUESTED;
1474 } 1472 }
1475 /* Start things over */ 1473 /* Start things over */