Index: interface.h =================================================================== --- interface.h (revision 289) +++ interface.h (working copy) @@ -53,6 +53,14 @@ #define HWADDR_LEN 20 +#define LINKLOCAL_ADDR 0xa9fe0000 +#define LINKLOCAL_MASK 0xffff0000 +#define LINKLOCAL_BRDC 0xa9feffff + +#ifndef IN_LINKLOCAL +# define IN_LINKLOCAL(addr) ((ntohl (addr) & IN_CLASSB_NET) == LINKLOCAL_ADDR) +#endif + typedef struct route_t { struct in_addr destination; Index: client.c =================================================================== --- client.c (revision 289) +++ client.c (working copy) @@ -489,9 +489,7 @@ switch (state) { case STATE_INIT: if (iface->previous_address.s_addr != 0 && -#ifdef ENABLE_IPV4LL ! IN_LINKLOCAL (iface->previous_address.s_addr) && -#endif ! options->doinform) { logger (LOG_ERR, "lost lease"); xid = 0; @@ -598,14 +596,12 @@ break; case STATE_BOUND: case STATE_RENEW_REQUESTED: -#ifdef ENABLE_IPV4LL if (IN_LINKLOCAL (dhcp->address.s_addr)) { memset (&dhcp->address, 0, sizeof (struct in_addr)); state = STATE_INIT; xid = 0; break; } -#endif state = STATE_RENEWING; xid = random (); case STATE_RENEWING: Index: ipv4ll.h =================================================================== --- ipv4ll.h (revision 289) +++ ipv4ll.h (working copy) @@ -25,14 +25,6 @@ #include "dhcp.h" #include "interface.h" -#define LINKLOCAL_ADDR 0xa9fe0000 -#define LINKLOCAL_MASK 0xffff0000 -#define LINKLOCAL_BRDC 0xa9feffff - -#ifndef IN_LINKLOCAL -# define IN_LINKLOCAL(addr) ((ntohl (addr) & IN_CLASSB_NET) == LINKLOCAL_ADDR) -#endif - int ipv4ll_get_address (interface_t *iface, dhcp_t *dhcp); #endif