From: Roy Marples Date: Thu, 28 Nov 2019 12:09:50 +0000 (+0000) Subject: Move some option finialisation so it's available globally. X-Git-Tag: v8.1.5~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c94d4e0f62b30a52d3e6f19b7c844a9b8e417c94;p=thirdparty%2Fdhcpcd.git Move some option finialisation so it's available globally. --- diff --git a/src/dhcpcd.c b/src/dhcpcd.c index 8870b439..98e81218 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -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 && diff --git a/src/if-options.c b/src/if-options.c index 3c7c706e..f922cfc1 100644 --- a/src/if-options.c +++ b/src/if-options.c @@ -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.