summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/udhcp/d6_dhcpc.c6
-rw-r--r--networking/udhcp/dhcpc.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index c77669a..12f8f11 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -793,7 +793,11 @@ static void perform_renew(void)
static void perform_d6_release(struct in6_addr *server_ipv6, struct in6_addr *our_cur_ipv6)
{
/* send release packet */
- if (state == BOUND || state == RENEWING || state == REBINDING) {
+ if (state == BOUND
+ || state == RENEWING
+ || state == REBINDING
+ || state == RENEW_REQUESTED
+ ) {
bb_error_msg("unicasting a release");
send_d6_release(server_ipv6, our_cur_ipv6); /* unicast */
d6_run_script(NULL, "deconfig");
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index fc7b621..e58acba 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1118,7 +1118,11 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip)
struct in_addr temp_addr;
/* send release packet */
- if (state == BOUND || state == RENEWING || state == REBINDING) {
+ if (state == BOUND
+ || state == RENEWING
+ || state == REBINDING
+ || state == RENEW_REQUESTED
+ ) {
temp_addr.s_addr = server_addr;
strcpy(buffer, inet_ntoa(temp_addr));
temp_addr.s_addr = requested_ip;