From aae428f0bf0fcd6cd0a2503b3a50de43785b8fd0 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 28 Sep 2018 14:44:09 +0200 Subject: 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 --- networking/udhcp/d6_dhcpc.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'networking/udhcp/d6_dhcpc.c') 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) case RENEW_REQUESTED: /* manual (SIGUSR1) renew */ case_RENEW_REQUESTED: case RENEWING: - if (timeout > 60) { + if (timeout >= 60) { /* send an unicast renew request */ /* Sometimes observed to fail (EADDRNOTAVAIL) to bind * a new UDP socket for sending inside send_renew. @@ -1465,11 +1465,9 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv) * For the second case, must make sure timeout * is not too big, or else we can send * futile renew requests for hours. - * (Ab)use -A TIMEOUT value (usually 20 sec) - * as a cap on the timeout. */ - if (timeout > tryagain_timeout) - timeout = tryagain_timeout; + if (timeout > 60) + timeout = 60; goto case_RENEW_REQUESTED; } /* Start things over */ -- cgit v1.2.3