diff options
Diffstat (limited to 'networking')
-rw-r--r-- | networking/udhcp/d6_dhcpc.c | 9 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 13 |
2 files changed, 16 insertions, 6 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c index 6ff040d..ddf3412 100644 --- a/networking/udhcp/d6_dhcpc.c +++ b/networking/udhcp/d6_dhcpc.c @@ -800,10 +800,15 @@ static void perform_d6_release(struct in6_addr *server_ipv6, struct in6_addr *ou ) { bb_error_msg("unicasting a release"); send_d6_release(server_ipv6, our_cur_ipv6); /* unicast */ - d6_run_script(NULL, "deconfig"); } bb_error_msg("entering released state"); - +/* + * We can be here on: SIGUSR2, + * or on exit (SIGTERM) and -R "release on quit" is specified. + * Users requested to be notified in all cases, even if not in one + * of the states above. + */ + d6_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_NONE); state = RELEASED; } diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 8a16e98..bef7327 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -1129,9 +1129,15 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip) bb_error_msg("unicasting a release of %s to %s", inet_ntoa(temp_addr), buffer); send_release(server_addr, requested_ip); /* unicast */ - udhcp_run_script(NULL, "deconfig"); } bb_error_msg("entering released state"); +/* + * We can be here on: SIGUSR2, + * or on exit (SIGTERM) and -R "release on quit" is specified. + * Users requested to be notified in all cases, even if not in one + * of the states above. + */ + udhcp_run_script(NULL, "deconfig"); change_listen_mode(LISTEN_NONE); state = RELEASED; @@ -1813,9 +1819,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv) temp = udhcp_get_option(&packet, DHCP_SERVER_ID); if (!temp) { non_matching_svid: - log1("%s with wrong server ID, ignoring packet", - "Received DHCP NAK" - ); + log1("received DHCP NAK with wrong" + " server ID, ignoring packet"); continue; } move_from_unaligned32(svid, temp); |