changeset 289:4009fb75f44d draft

Don't request a NULL address and supply a serveraddress when we should.
author Roy Marples <roy@marples.name>
date Wed, 16 Jan 2008 17:38:02 +0000
parents bedf073fc0e7
children 5b8e80300277
files dhcp.c
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/dhcp.c	Wed Jan 16 17:34:36 2008 +0000
+++ b/dhcp.c	Wed Jan 16 17:38:02 2008 +0000
@@ -183,12 +183,15 @@
 			logger (LOG_ERR,
 				"cannot request a link local address");
 		else {
-			if (dhcp->address.s_addr != iface->previous_address.s_addr &&
+			if (dhcp->address.s_addr &&
+			    dhcp->address.s_addr !=
+			    iface->previous_address.s_addr &&
 			    type != DHCP_RELEASE)
 				PUTADDR (DHCP_ADDRESS, dhcp->address);
 
-			if (dhcp->serveraddress.s_addr != 0 && dhcp->address.s_addr !=0 &&
-			    (iface->previous_address.s_addr == 0 || type == DHCP_RELEASE))
+			if (dhcp->serveraddress.s_addr &&
+			    dhcp->address.s_addr &&
+			    (type == DHCP_REQUEST || type == DHCP_RELEASE))
 				PUTADDR (DHCP_SERVERIDENTIFIER,
 					 dhcp->serveraddress);
 		}