diff options
| author | Roy Marples <roy@marples.name> | 2018-06-03 12:19:15 +0100 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2018-06-03 12:19:15 +0100 |
| commit | 5337c294de8fea8b58942109dfb9b7f25baf0fb0 (patch) | |
| tree | 2a48c77c04972fe739046b57c75f0d0f08fc4391 | |
| parent | 04ba17660c518429599d54957654817cc3d18a31 (diff) | |
| download | dhcpcd-5337c294de8fea8b58942109dfb9b7f25baf0fb0.tar.xz | |
Fix compile without INET6
| -rw-r--r-- | src/dhcp.h | 1 | ||||
| -rw-r--r-- | src/dhcp6.h | 1 | ||||
| -rw-r--r-- | src/dhcpcd.c | 21 | ||||
| -rw-r--r-- | src/ipv4ll.h | 1 | ||||
| -rw-r--r-- | src/ipv6.c | 2 | ||||
| -rw-r--r-- | src/ipv6.h | 1 | ||||
| -rw-r--r-- | src/ipv6nd.h | 1 |
7 files changed, 22 insertions, 6 deletions
@@ -267,7 +267,6 @@ void dhcp_close(struct interface *); void dhcp_free(struct interface *); int dhcp_dump(struct interface *); #else -#define dhcp_drop(a, b) {} #define dhcp_start(a) {} #define dhcp_abort(a) {} #define dhcp_renew(a) {} diff --git a/src/dhcp6.h b/src/dhcp6.h index f9f8c403..0e48ad0e 100644 --- a/src/dhcp6.h +++ b/src/dhcp6.h @@ -245,7 +245,6 @@ int dhcp6_dump(struct interface *); #define dhcp6_renew(a) {} #define dhcp6_env(a, b, c, d, e) (0) #define dhcp6_free(a) {} -#define dhcp6_handleifa(a, b) {} #define dhcp6_dadcompleted(a) (0) #define dhcp6_drop(a, b) {} #define dhcp6_dropnondelegates(a) {} diff --git a/src/dhcpcd.c b/src/dhcpcd.c index 2483e38c..d63fa0c2 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -363,14 +363,25 @@ static void dhcpcd_drop(struct interface *ifp, int stop) { +#ifdef DHCP6 dhcp6_drop(ifp, stop ? NULL : "EXPIRE6"); +#endif +#ifdef INET6 ipv6nd_drop(ifp); ipv6_drop(ifp); +#endif +#ifdef IPV4LL ipv4ll_drop(ifp); +#endif +#ifdef DHCP dhcp_drop(ifp, stop ? "STOP" : "EXPIRE"); +#endif #ifdef ARP arp_drop(ifp); #endif +#if !defined(DHCP6) && !defined(DHCP) + UNUSED(stop); +#endif } static void @@ -773,8 +784,10 @@ static void warn_iaid_conflict(struct interface *ifp, uint16_t ia_type, uint8_t *iaid) { struct interface *ifn; +#ifdef INET6 size_t i; struct if_ia *ia; +#endif TAILQ_FOREACH(ifn, ifp->ctx->ifaces, next) { if (ifn == ifp || !ifn->active) @@ -783,12 +796,14 @@ warn_iaid_conflict(struct interface *ifp, uint16_t ia_type, uint8_t *iaid) memcmp(ifn->options->iaid, iaid, sizeof(ifn->options->iaid)) == 0) break; +#ifdef INET6 for (i = 0; i < ifn->options->ia_len; i++) { ia = &ifn->options->ia[i]; if (ia->ia_type == ia_type && memcmp(ia->iaid, iaid, sizeof(ia->iaid)) == 0) break; } +#endif } /* This is only a problem if the interfaces are on the same network. */ @@ -802,7 +817,6 @@ dhcpcd_startinterface(void *arg) { struct interface *ifp = arg; struct if_options *ifo = ifp->options; - size_t i; char buf[DUID_LEN * 3]; int carrier; struct timespec tv; @@ -842,13 +856,17 @@ dhcpcd_startinterface(void *arg) } if (ifo->options & (DHCPCD_DUID | DHCPCD_IPV6)) { +#ifdef INET6 + size_t i; struct if_ia *ia; +#endif /* Report IAIDs */ loginfox("%s: IAID %s", ifp->name, hwaddr_ntoa(ifo->iaid, sizeof(ifo->iaid), buf, sizeof(buf))); warn_iaid_conflict(ifp, 0, ifo->iaid); +#ifdef INET6 for (i = 0; i < ifo->ia_len; i++) { ia = &ifo->ia[i]; if (memcmp(ifo->iaid, ia->iaid, sizeof(ifo->iaid))) { @@ -859,6 +877,7 @@ dhcpcd_startinterface(void *arg) warn_iaid_conflict(ifp, ia->ia_type, ia->iaid); } } +#endif } if (ifo->options & DHCPCD_IPV6 && ipv6_start(ifp) == -1) { diff --git a/src/ipv4ll.h b/src/ipv4ll.h index 074de693..6ce1bef2 100644 --- a/src/ipv4ll.h +++ b/src/ipv4ll.h @@ -75,7 +75,6 @@ void ipv4ll_freedrop(struct interface *, int); #define ipv4ll_defaultroute(route, ifp) (0) #define ipv4ll_handlert(a, b, c) (0) #define ipv4ll_free(a) {} -#define ipv4ll_drop(a) {} #endif #endif @@ -1183,7 +1183,9 @@ ipv6_handleifa(struct dhcpcd_ctx *ctx, return; ipv6nd_handleifa(cmd, ia, pid); +#ifdef DHCP6 dhcp6_handleifa(cmd, ia, pid); +#endif out: /* Done with the ia now, so free it. */ @@ -285,7 +285,6 @@ bool inet6_getroutes(struct dhcpcd_ctx *, struct rt_head *); #define ipv6_hasaddr(a) (0) #define ipv6_free_ll_callbacks(a) {} #define ipv6_free(a) {} -#define ipv6_drop(a) {} #define ipv6_ctxfree(a) {} #define ipv6_gentempifid(a) {} #endif diff --git a/src/ipv6nd.h b/src/ipv6nd.h index 7e123e48..d40ed034 100644 --- a/src/ipv6nd.h +++ b/src/ipv6nd.h @@ -107,7 +107,6 @@ void ipv6nd_neighbour(struct dhcpcd_ctx *, struct in6_addr *, int); #define ipv6nd_free(a) {} #define ipv6nd_hasra(a) (0) #define ipv6nd_dadcompleted(a) (0) -#define ipv6nd_drop(a) {} #define ipv6nd_expire(a, b) {} #endif |
