From bf493403983f75bd458adc9cc86856586bf25ae9 Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Tue, 16 Jul 2013 11:37:33 +0200 Subject: Don't release DHCP leases by default (FS#35760) Regardless of the DHCP client, leases are not released by default. This introduces a new configuration parameter: DHCPReleaseOnStop, which can be used to change the default behavior. --- src/lib/ip | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lib/ip b/src/lib/ip index b627739..d62ac0c 100644 --- a/src/lib/ip +++ b/src/lib/ip @@ -177,17 +177,19 @@ ip_set() { # $IP: type of IPv4 configuration # $IP6: type of IPv6 configuration ip_unset() { + local stop="-x" if [[ $IP == "dhcp" ]]; then case ${DHCPClient:-dhcpcd} in dhcpcd) if [[ -f "/run/dhcpcd-$Interface.pid" ]]; then - do_debug dhcpcd -qk "$Interface" >/dev/null + is_yes "${DHCPReleaseOnStop:-no}" && stop="-k" + do_debug dhcpcd -q $stop "$Interface" >/dev/null fi ;; dhclient) if [[ -f "/run/dhclient-$Interface.pid" ]]; then - # Alternatively, use -r instead of -x to also release the lease - do_debug dhclient -q -x "$Interface" -pf "/run/dhclient-$Interface.pid" >/dev/null + is_yes "${DHCPReleaseOnStop:-no}" && stop="-r" + do_debug dhclient -q $stop "$Interface" -pf "/run/dhclient-$Interface.pid" >/dev/null fi ;; esac -- cgit v1.2.3-24-g4f1b