From b6355e2bb5c931413735b7df2964e20e050bbc07 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 26 Aug 2016 18:46:34 +0200 Subject: udhcpc: Unconditionally call deconfig script, not only if lease is active The udhcpc script may be used to setup fallback configuration (E.G. IPv4LL, fixed IP address, ..) that also needs to be cleaned up on release (E.G. when SIGUSR2 is called or on shutdown with -R), so unconditionally call deconfig. Signed-off-by: Peter Korsgaard Signed-off-by: Denys Vlasenko --- networking/udhcp/dhcpc.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'networking/udhcp/dhcpc.c') diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 8a16e987d..bef73277a 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); -- cgit v1.2.3