]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Another fix for prior
authorRoy Marples <roy@marples.name>
Fri, 4 Oct 2024 16:24:43 +0000 (16:24 +0000)
committerRoy Marples <roy@marples.name>
Fri, 4 Oct 2024 16:24:43 +0000 (16:24 +0000)
src/ipv4.c
src/ipv4ll.c

index be7d7cffd21b9a0d9774c05b3c1e5e5af60115c4..a5fe49009fe3cae56189e7e7614364739e405c90 100644 (file)
@@ -717,7 +717,7 @@ ipv4_addaddr(struct interface *ifp, const struct in_addr *addr,
 
        if (ia->flags & IPV4_AF_NEW) {
                TAILQ_INSERT_TAIL(&state->addrs, ia, next);
-#ifdef ARP
+#if defined(ARP) && !defined(KERNEL_RFC5227)
                arp_ifannounceaddr(ifp, &ia->addr);
 #endif
        }
index 01556cab593148218d5798bb3b0ce140042e0db6..bb73c0dd3e8aca0d7ded0493affed9c0531fef3e 100644 (file)
@@ -182,9 +182,6 @@ ipv4ll_announced_arp(struct arp_state *astate)
        struct ipv4ll_state *state = IPV4LL_STATE(astate->iface);
 
        state->conflicts = 0;
-#ifdef KERNEL_RFC5227
-       arp_free(astate);
-#endif
 }
 
 /* This is the callback by ARP freeing */
@@ -268,9 +265,7 @@ ipv4ll_not_found(struct interface *ifp)
        rt_build(ifp->ctx, AF_INET);
 
 #ifndef KERNEL_RFC5227
-       astate = arp_ifannounceaddr(ifp, &ia->addr);
-       if (astate != NULL)
-               astate->announced_cb = ipv4ll_announced_arp;
+       state->arp->announced_cb = ipv4ll_announced_arp;
 #endif
        script_runreason(ifp, "IPV4LL");
        dhcpcd_daemonise(ifp->ctx);