aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp
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
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')
-rw-r--r--networking/udhcp/d6_dhcpc.c8
-rw-r--r--networking/udhcp/dhcpc.c8
2 files changed, 6 insertions, 10 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 */
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 0310663e0..ab3e5a463 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1519,7 +1519,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
1519 case RENEW_REQUESTED: /* manual (SIGUSR1) renew */ 1519 case RENEW_REQUESTED: /* manual (SIGUSR1) renew */
1520 case_RENEW_REQUESTED: 1520 case_RENEW_REQUESTED:
1521 case RENEWING: 1521 case RENEWING:
1522 if (timeout > 60) { 1522 if (timeout >= 60) {
1523 /* send an unicast renew request */ 1523 /* send an unicast renew request */
1524 /* Sometimes observed to fail (EADDRNOTAVAIL) to bind 1524 /* Sometimes observed to fail (EADDRNOTAVAIL) to bind
1525 * a new UDP socket for sending inside send_renew. 1525 * a new UDP socket for sending inside send_renew.
@@ -1592,11 +1592,9 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
1592 * For the second case, must make sure timeout 1592 * For the second case, must make sure timeout
1593 * is not too big, or else we can send 1593 * is not too big, or else we can send
1594 * futile renew requests for hours. 1594 * futile renew requests for hours.
1595 * (Ab)use -A TIMEOUT value (usually 20 sec)
1596 * as a cap on the timeout.
1597 */ 1595 */
1598 if (timeout > tryagain_timeout) 1596 if (timeout > 60)
1599 timeout = tryagain_timeout; 1597 timeout = 60;
1600 goto case_RENEW_REQUESTED; 1598 goto case_RENEW_REQUESTED;
1601 } 1599 }
1602 /* Start things over */ 1600 /* Start things over */