]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
DHCP: Allow DHCP over PtP interfaces.
authorRoy Marples <roy@marples.name>
Tue, 20 Aug 2019 12:34:27 +0000 (13:34 +0100)
committerRoy Marples <roy@marples.name>
Tue, 20 Aug 2019 12:34:27 +0000 (13:34 +0100)
This still requires manual configuration, but allows QMI devices to
work like so:

interface wwan0
dhcp

or on the command line:

dhcpcd --dhcp

src/dhcpcd.c
src/if-options.c
src/if-options.h

index bddd316b5a4a5e1f247b62e628e27447e4bea0cd..d2b8bd91293ed6728c79ff46cb7d89d6a2c7ddd8 100644 (file)
@@ -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;
 
index 0213de75cd0517378005ced0d4f1c8fbacc0fce9..f0165c13b7ca47741ff713e13c05e196eef2cb4d 100644 (file)
@@ -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;
index 4f720d327bb0036d8663e46a4f1d303e4ef2158c..d0eb764ab52d8d8b18b4b4c350e016f29d0daab7 100644 (file)
 #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)