From: Roy Marples Date: Tue, 20 Aug 2019 12:34:27 +0000 (+0100) Subject: DHCP: Allow DHCP over PtP interfaces. X-Git-Tag: v8.0.3~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72d7877943c7f9bbba52dc61050a1bd706982fce;p=thirdparty%2Fdhcpcd.git DHCP: Allow DHCP over PtP interfaces. This still requires manual configuration, but allows QMI devices to work like so: interface wwan0 dhcp or on the command line: dhcpcd --dhcp --- diff --git a/src/dhcpcd.c b/src/dhcpcd.c index bddd316b..d2b8bd91 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -458,11 +458,10 @@ configure_interface1(struct interface *ifp) ifo->options &= ~DHCPCD_ARP; if (!(ifp->flags & IFF_MULTICAST)) ifo->options &= ~DHCPCD_IPV6RS; - if (!(ifo->options & DHCPCD_INFORM)) + if (!(ifo->options & (DHCPCD_INFORM | DHCPCD_WANTDHCP))) ifo->options |= DHCPCD_STATIC; } - if (ifp->flags & IFF_NOARP || - !(ifo->options & DHCPCD_ARP) || + if (!(ifo->options & DHCPCD_ARP) || ifo->options & (DHCPCD_INFORM | DHCPCD_STATIC)) ifo->options &= ~DHCPCD_IPV4LL; diff --git a/src/if-options.c b/src/if-options.c index 0213de75..f0165c13 100644 --- a/src/if-options.c +++ b/src/if-options.c @@ -2062,7 +2062,7 @@ err_sla: ifo->auth.options &= ~DHCPCD_AUTH_REQUIRE; break; case O_DHCP: - ifo->options |= DHCPCD_DHCP | DHCPCD_IPV4; + ifo->options |= DHCPCD_DHCP | DHCPCD_WANTDHCP | DHCPCD_IPV4; break; case O_NODHCP: ifo->options &= ~DHCPCD_DHCP; diff --git a/src/if-options.h b/src/if-options.h index 4f720d32..d0eb764a 100644 --- a/src/if-options.h +++ b/src/if-options.h @@ -110,7 +110,7 @@ #define DHCPCD_DHCP6 (1ULL << 50) #define DHCPCD_IF_UP (1ULL << 51) #define DHCPCD_INFORM6 (1ULL << 52) -// unused (1ULL << 53) +#define DHCPCD_WANTDHCP (1ULL << 53) #define DHCPCD_IPV6RA_AUTOCONF (1ULL << 54) #define DHCPCD_ROUTER_HOST_ROUTE_WARNED (1ULL << 55) #define DHCPCD_LASTLEASE_EXTEND (1ULL << 56)