]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Move some option finialisation so it's available globally.
authorRoy Marples <roy@marples.name>
Thu, 28 Nov 2019 12:09:50 +0000 (12:09 +0000)
committerRoy Marples <roy@marples.name>
Thu, 2 Jan 2020 12:07:53 +0000 (12:07 +0000)
src/dhcpcd.c
src/if-options.c

index 8870b439bb651b561a6c680f6b31b613a2f58b66..98e812181b8ce12704ea65fac8b6f1f66ce45803 100644 (file)
@@ -467,25 +467,11 @@ configure_interface1(struct interface *ifp)
                if (!(ifo->options & (DHCPCD_INFORM | DHCPCD_WANTDHCP)))
                        ifo->options |= DHCPCD_STATIC;
        }
-       if (!(ifo->options & DHCPCD_ARP) ||
-           ifo->options & (DHCPCD_INFORM | DHCPCD_STATIC))
-               ifo->options &= ~DHCPCD_IPV4LL;
 
        if (ifo->metric != -1)
                ifp->metric = (unsigned int)ifo->metric;
 
-       if (!(ifo->options & DHCPCD_IPV4))
-               ifo->options &= ~(DHCPCD_DHCP | DHCPCD_IPV4LL | DHCPCD_WAITIP4);
-
 #ifdef INET6
-       if (!(ifo->options & DHCPCD_IPV6))
-               ifo->options &=
-                   ~(DHCPCD_IPV6RS | DHCPCD_DHCP6 | DHCPCD_WAITIP6);
-
-       if (!(ifo->options & DHCPCD_IPV6RS))
-               ifo->options &=
-                   ~(DHCPCD_IPV6RA_AUTOCONF | DHCPCD_IPV6RA_REQRDNSS);
-
        /* We want to setup INET6 on the interface as soon as possible. */
        if (ifp->active == IF_ACTIVE_USER &&
            ifo->options & DHCPCD_IPV6 &&
index 3c7c706edce502616e40b8f579cbbc4c3983c7f5..f922cfc138aca2cb57bdbde0ece1ae93d37acbf2 100644 (file)
@@ -2231,6 +2231,21 @@ finish_config(struct if_options *ifo)
                 * guard should suffice */
                ifo->options |= DHCPCD_VENDORRAW;
        }
+
+       if (!(ifo->options & DHCPCD_ARP) ||
+           ifo->options & (DHCPCD_INFORM | DHCPCD_STATIC))
+               ifo->options &= ~DHCPCD_IPV4LL;
+
+       if (!(ifo->options & DHCPCD_IPV4))
+               ifo->options &= ~(DHCPCD_DHCP | DHCPCD_IPV4LL | DHCPCD_WAITIP4);
+
+       if (!(ifo->options & DHCPCD_IPV6))
+               ifo->options &=
+                   ~(DHCPCD_IPV6RS | DHCPCD_DHCP6 | DHCPCD_WAITIP6);
+
+       if (!(ifo->options & DHCPCD_IPV6RS))
+               ifo->options &=
+                   ~(DHCPCD_IPV6RA_AUTOCONF | DHCPCD_IPV6RA_REQRDNSS);
 }
 
 /* Handy routine to read very long lines in text files.