summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/d6_dhcpc.c5
-rw-r--r--networking/udhcp/dhcpc.c5
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"