diff options
-rw-r--r-- | networking/udhcp/d6_dhcpc.c | 5 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index 66e4b6c..e2f8a6a 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -1738,8 +1738,9 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv) /* note: "int timeout" will not overflow even with 0xffffffff inputs here: */ timeout = (prefix_timeout < address_timeout ? prefix_timeout : address_timeout) / 2; /* paranoia: must not be too small */ - if (timeout < 0x10) - timeout = 0x10; + /* timeout > 60 - ensures at least one unicast renew attempt */ + if (timeout < 61) + timeout = 61; /* enter bound state */ d6_run_script(packet.d6_options, packet_end, (state == REQUESTING ? "bound" : "renew")); diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index ab3e5a4..d2f1659 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -1725,8 +1725,9 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) move_from_unaligned32(lease_seconds, temp); lease_seconds = ntohl(lease_seconds); /* paranoia: must not be too small and not prone to overflows */ - if (lease_seconds < 0x10) - lease_seconds = 0x10; + /* timeout > 60 - ensures at least one unicast renew attempt */ + if (lease_seconds < 2 * 61) + lease_seconds = 2 * 61; //if (lease_seconds > 0x7fffffff) // lease_seconds = 0x7fffffff; //^^^not necessary since "timeout = lease_seconds / 2" |