tags 311777 + confirmed patch thanks Here is a patch to implement this. It is based on this change from Ubuntu:
ifupdown (0.6.7ubuntu2) dapper; urgency=low * Change the dhclient3 leases path to /var/lib/dhcp3 so the leases survive a reboot. (Ubuntu: #18148) -- Scott James Remnant <[EMAIL PROTECTED]> Wed, 23 Nov 2005 16:11:30 +0000 I added support for dhclient (v2) as well, using /var/lib/dhcp/ for that version to match the default for dhclient.
diff -ur ifupdown-0.6.7-0.4/ifupdown.nw ifupdown-0.6.7/ifupdown.nw --- ifupdown-0.6.7-0.4/ifupdown.nw 2006-09-15 23:39:20.000000000 +0200 +++ ifupdown-0.6.7/ifupdown.nw 2006-09-16 08:56:00.000000000 +0200 @@ -3924,9 +3924,9 @@ up [[ifconfig %iface% hw %hwaddress%]] - dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) - dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \ elsif (execable("/sbin/dhclient")) pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \ elsif (execable("/sbin/pump") && mylinuxver() >= mylinux(2,1,100)) @@ -3938,7 +3938,7 @@ elsif (execable("/sbin/dhcpcd")) down - dhclient3 -r -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient3 -r -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) cat /var/run/dhclient.%iface%.pid | xargs -i kill -TERM {} \ elsif (execable("/sbin/dhclient")) diff -ur ifupdown-0.6.7-0.4/inet.defn ifupdown-0.6.7/inet.defn --- ifupdown-0.6.7-0.4/inet.defn 2006-09-15 23:39:20.000000000 +0200 +++ ifupdown-0.6.7/inet.defn 2006-09-16 08:56:21.000000000 +0200 @@ -75,9 +75,9 @@ up [[ifconfig %iface% hw %hwaddress%]] - dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient3 -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) - dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient -e -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp/dhclient.%iface%.leases %iface% \ elsif (execable("/sbin/dhclient")) pump -i %iface% [[-h %hostname%]] [[-l %leasehours%]] \ elsif (execable("/sbin/pump") && mylinuxver() >= mylinux(2,1,100)) @@ -89,7 +89,7 @@ elsif (execable("/sbin/dhcpcd")) down - dhclient3 -r -pf /var/run/dhclient.%iface%.pid -lf /var/run/dhclient.%iface%.leases %iface% \ + dhclient3 -r -pf /var/run/dhclient.%iface%.pid -lf /var/lib/dhcp3/dhclient.%iface%.leases %iface% \ if (execable("/sbin/dhclient3")) cat /var/run/dhclient.%iface%.pid | xargs -i kill -TERM {} \ elsif (execable("/sbin/dhclient"))