Blob Blame Raw
diff -up dhcp-4.0.0//client/dhclient.c.inherit dhcp-4.0.0//client/dhclient.c
--- dhcp-4.0.0//client/dhclient.c.inherit	2008-08-01 09:49:36.000000000 -1000
+++ dhcp-4.0.0//client/dhclient.c	2008-08-01 09:53:28.000000000 -1000
@@ -2393,6 +2393,15 @@ void send_request (cpp)
 		/* Now do a preinit on the interface so that we can
 		   discover a new address. */
 		script_init (client, "PREINIT", (struct string_list *)0);
+		/* Has an active lease */
+		if (client -> active &&
+			client -> active -> is_bootp &&
+			client -> active -> expiry > cur_time &&
+		    primary_address.s_addr != 0 &&
+			client -> active -> address.len == 4 &&
+			memcpy (client -> active -> address.iabuf, &primary_address, 4) == 0)
+				client_envadd (client, "", "keep_old_ip", "%s", "yes");
+			
 		if (client -> alias)
 			script_write_params (client, "alias_",
 					     client -> alias);