changeset 2272:70151201c430 draft

Fix auto-configure
author Roy Marples <roy@marples.name>
date Sat, 01 Feb 2014 10:40:40 +0000
parents 3f402daf273e
children 5d5903ebb49f
files dhcp.c
diffstat 1 files changed, 6 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/dhcp.c	Fri Jan 31 22:28:16 2014 +0000
+++ b/dhcp.c	Sat Feb 01 10:40:40 2014 +0000
@@ -2275,7 +2275,7 @@
 			free(msg);
 		}
 		if (state->state == DHS_DISCOVER &&
-		    get_option_uint8(&tmp, dhcp, DHO_AUTOCONFIGURE) != 0)
+		    get_option_uint8(&tmp, dhcp, DHO_AUTOCONFIGURE) == 0)
 		{
 			switch (tmp) {
 			case 0:
@@ -2290,7 +2290,11 @@
 				log_dhcp(LOG_WARNING, "IPv4LL enabled from",
 				    iface, dhcp, from);
 				eloop_timeout_delete(NULL, iface);
-				ipv4ll_start(iface);
+				if (IN_LINKLOCAL(htonl(state->addr.s_addr)))
+					eloop_timeout_add_sec(DHCP_MAX,
+					    dhcp_discover, iface);
+				else
+					ipv4ll_start(iface);
 				break;
 			default:
 				syslog(LOG_ERR,