Package: ifupdown
Tags: patch
Attached is a patch providing an option to keep the lease. A new
optional parameter is created in the /etc/network/interfaces file. The
default is set so the current behavior is not changed, thus there is no
impact on existing systems.
Please apply this patch to ifupdown.
--- ifupdown-0.8.35/inet.defn.orig 2019-01-28 14:09:58.000000000 -0600
+++ ifupdown-0.8.35/inet.defn 2019-02-05 16:25:21.742343309 -0600
@@ -92,6 +92,7 @@
vendor vendor -- Vendor class identifier (dhcpcd)
client client -- Client identifier (dhcpcd)
hwaddress address -- Hardware address.
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -113,7 +114,9 @@
down
/sbin/dhclient -4 -v -i -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -4 -v -i -x -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+ elsif (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
/sbin/pump -i %iface% -r \
elsif (execable("/sbin/pump"))
if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
@@ -278,6 +281,7 @@
vendor vendor -- Vendor class identifier (dhcpcd)
client client -- Client identifier (dhcpcd, udhcpc)
hwaddress address -- Hardware Address.
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -298,7 +302,9 @@
down
/sbin/dhclient -4 -v -i -r -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -4 -v -i -x -pf /run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases -I -df /var/lib/dhcp/dhclient6.%iface%.leases %iface% \
+ elsif (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
if test -f /run/udhcpc.%iface%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface%.pid); fi \
elsif (execable("/sbin/udhcpc"))
/sbin/dhcpcd -k %iface% \
@@ -430,6 +436,7 @@
vendor vendor -- Vendor class identifier (dhcpcd)
client client -- Client identifier (dhcpcd, udhcpc)
hwaddress address -- Hardware Address (Not yet supported)
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -449,7 +456,9 @@
down
/sbin/dhclient -4 -v -i -r -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -4 -v -i -x -pf /run/dhclient.%iface///.%.pid -lf /var/lib/dhcp/dhclient.%iface///.%.leases -I -df /var/lib/dhcp/dhclient6.%iface///.%.leases %iface% \
+ if (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
if test -f /run/udhcpc.%iface///.%.pid; then kill -USR2 $(/bin/cat /run/udhcpc.%iface///.%.pid); kill -TERM $(/bin/cat /run/udhcpc.%iface///.%.pid); fi \
elsif (execable("/sbin/udhcpc"))
/sbin/dhcpcd -k %iface% \
--- ifupdown-0.8.35/inet6.defn.orig 2019-01-28 14:14:20.000000000 -0600
+++ ifupdown-0.8.35/inet6.defn 2019-02-05 16:27:44.092401408 -0600
@@ -142,6 +142,7 @@
request_prefix int -- Request a prefix through DHCPv6 Prefix Delegation (0=off, 1=on) [0]
ll-attempts -- Number of attempts to wait for a link-local address [60]
ll-interval -- Link-local address polling interval in seconds [0.1]
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -163,7 +164,9 @@
down
/sbin/dhclient -6 -v -r -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -6 -v -x -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+ elsif (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
echo 'No DHCPv6 client software found!' >&2; false \
elsif (1)
@@ -319,6 +322,7 @@
options
hwaddress address -- Hardware address or "random"
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -332,7 +336,9 @@
down
/sbin/dhclient -6 -r -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -6 -x -pf /run/dhclient6.%iface%.pid -lf /var/lib/dhcp/dhclient6.%iface%.leases -I -df /var/lib/dhcp/dhclient.%iface%.leases %iface% \
+ if (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
echo 'No DHCPv6 client software found!' >&2; false \
elsif (1)
@@ -390,6 +396,7 @@
options
hwaddress address -- Hardware address (Not yet supported)
+ dhcprelease int -- Release address when finished (0=off, 1=on) (dhclient) [1]
conversion
hwaddress cleanup_hwaddress
@@ -404,7 +411,9 @@
down
/sbin/dhclient -6 -r -pf /run/dhclient6.%iface///.%.pid -lf /var/lib/dhcp/dhclient6.%iface///.%.leases -I -df /var/lib/dhcp/dhclient.%iface///.%.leases %iface% \
- if (execable("/sbin/dhclient"))
+ if (var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
+ /sbin/dhclient -6 -x -pf /run/dhclient6.%iface///.%.pid -lf /var/lib/dhcp/dhclient6.%iface///.%.leases -I -df /var/lib/dhcp/dhclient.%iface///.%.leases %iface% \
+ if (!var_true("dhcprelease",ifd) && execable("/sbin/dhclient"))
echo 'No DHCPv6 client software found!' >&2; false \
elsif (1)