]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
We need to store INADDR_ANY addresses for Solaris.
authorRoy Marples <roy@marples.name>
Tue, 24 May 2016 13:02:31 +0000 (13:02 +0000)
committerRoy Marples <roy@marples.name>
Tue, 24 May 2016 13:02:31 +0000 (13:02 +0000)
ipv4.c

diff --git a/ipv4.c b/ipv4.c
index cebda0b969423caed41e72f0ee7f8cf31d6b9f28..09c65d7f154683879930abad1edb3c49f8952a26 100644 (file)
--- a/ipv4.c
+++ b/ipv4.c
@@ -1212,10 +1212,6 @@ ipv4_handleifa(struct dhcpcd_ctx *ctx,
                errno = ESRCH;
                return;
        }
-       if (addr->s_addr == INADDR_ANY) {
-               errno = EINVAL;
-               return;
-       }
        if ((ifp = if_find(ifs, ifname)) == NULL)
                return;
        if ((state = ipv4_getstate(ifp)) == NULL) {
@@ -1254,9 +1250,11 @@ ipv4_handleifa(struct dhcpcd_ctx *ctx,
                return;
        }
 
-       arp_handleifa(cmd, ia);
-       dhcp_handleifa(cmd, ia);
-       
+       if (addr->s_addr != INADDR_ANY && addr->s_addr != INADDR_BROADCAST) {
+               arp_handleifa(cmd, ia);
+               dhcp_handleifa(cmd, ia);
+       }
+
        if (cmd == RTM_DELADDR)
                free(ia);
 }