diff options
Diffstat (limited to 'avahi-autoipd/main.c')
-rw-r--r-- | avahi-autoipd/main.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/avahi-autoipd/main.c b/avahi-autoipd/main.c index 01ccc79..ef529b9 100644 --- a/avahi-autoipd/main.c +++ b/avahi-autoipd/main.c @@ -1144,9 +1144,13 @@ static int loop(int iface, uint32_t addr) { for (i = 0; i < ETHER_ADDRLEN; i++) a += hw_address[i]*i; + a = (a % 0xFE00) + 0x0100; + addr = htonl(IPV4LL_NETWORK | (uint32_t) a); } + assert(is_ll_address(addr)); + set_state(st, 1, addr); daemon_log(LOG_INFO, "Starting with address %s", inet_ntop(AF_INET, &addr, buf, sizeof(buf))); |