summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2018-06-03 12:19:15 +0100
committerRoy Marples <roy@marples.name>2018-06-03 12:19:15 +0100
commitf7bca87145419a9988db7d4dfd84bd8777ca1f44 (patch)
tree2a48c77c04972fe739046b57c75f0d0f08fc4391
parent2ce3b7d3c2e99303e51d38364642458a734f9ded (diff)
downloaddhcpcd-f7bca87145419a9988db7d4dfd84bd8777ca1f44.tar.xz
Fix compile without INET6
-rw-r--r--src/dhcp.h1
-rw-r--r--src/dhcp6.h1
-rw-r--r--src/dhcpcd.c21
-rw-r--r--src/ipv4ll.h1
-rw-r--r--src/ipv6.c2
-rw-r--r--src/ipv6.h1
-rw-r--r--src/ipv6nd.h1
7 files changed, 22 insertions, 6 deletions
diff --git a/src/dhcp.h b/src/dhcp.h
index b4313d43..fb279587 100644
--- a/src/dhcp.h
+++ b/src/dhcp.h
@@ -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
diff --git a/src/ipv6.c b/src/ipv6.c
index 3085b888..b3b026b3 100644
--- a/src/ipv6.c
+++ b/src/ipv6.c
@@ -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. */
diff --git a/src/ipv6.h b/src/ipv6.h
index 2b6eb5cc..ef740ba4 100644
--- a/src/ipv6.h
+++ b/src/ipv6.h
@@ -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