]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Disable ARP for POINTOPOINT.
authorRoy Marples <roy@marples.name>
Wed, 25 May 2016 09:38:51 +0000 (09:38 +0000)
committerRoy Marples <roy@marples.name>
Wed, 25 May 2016 09:38:51 +0000 (09:38 +0000)
dhcpcd.c

index aaf3ce20403846d173169c873173ad55326bb135..3041cf7f1deaef941c65342e9f262133bdfb9803 100644 (file)
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -420,14 +420,17 @@ configure_interface1(struct interface *ifp)
        if (ifo->options & DHCPCD_RELEASE)
                ifo->options &= ~DHCPCD_PERSISTENT;
 
-       if (ifp->flags & IFF_POINTOPOINT && !(ifo->options & DHCPCD_INFORM))
-               ifo->options |= DHCPCD_STATIC;
+       if (ifp->flags & (IFF_POINTOPOINT | IFF_LOOPBACK)) {
+               ifo->options &= ~DHCPCD_ARP;
+               if (!(ifp->flags & IFF_MULTICAST))
+                       ifo->options &= ~DHCPCD_IPV6RS;
+               if (!(ifo->options & DHCPCD_INFORM))
+                       ifo->options |= DHCPCD_STATIC;
+       }
        if (ifp->flags & IFF_NOARP ||
+           !(ifo->options & DHCPCD_ARP) ||
            ifo->options & (DHCPCD_INFORM | DHCPCD_STATIC))
                ifo->options &= ~DHCPCD_IPV4LL;
-       if (ifp->flags & (IFF_POINTOPOINT | IFF_LOOPBACK) ||
-           !(ifp->flags & IFF_MULTICAST))
-               ifo->options &= ~DHCPCD_IPV6RS;
 
        if (ifo->metric != -1)
                ifp->metric = (unsigned int)ifo->metric;