summaryrefslogtreecommitdiffstats
path: root/if-bsd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2016-04-07 20:41:51 +0000
committerRoy Marples <roy@marples.name>2016-04-07 20:41:51 +0000
commit39e27886c15f20fbf10dc362d71ed0adc3188147 (patch)
tree3813ebb7e59c320d9804ad41b8695bf8ccefb2ec /if-bsd.c
parentd306a8f2df27b629cac51cd6df648262046dcd20 (diff)
downloaddhcpcd-39e27886c15f20fbf10dc362d71ed0adc3188147.tar.xz
Fix compile on BSD.
Diffstat (limited to 'if-bsd.c')
-rw-r--r--if-bsd.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/if-bsd.c b/if-bsd.c
index eb988623..fd5e990b 100644
--- a/if-bsd.c
+++ b/if-bsd.c
@@ -837,6 +837,7 @@ if_address6(const struct ipv6_addr *ia, int action)
{
struct in6_aliasreq ifa;
struct in6_addr mask;
+ struct priv *priv;
memset(&ifa, 0, sizeof(ifa));
strlcpy(ifa.ifra_name, ia->iface->name, sizeof(ifa.ifra_name));
@@ -871,7 +872,8 @@ if_address6(const struct ipv6_addr *ia, int action)
ifa.ifra_lifetime.ia6t_pltime = ia->prefix_pltime;
#undef ADDADDR
- return ioctl(ia->iface->ctx->pf_inet6_fd,
+ priv = (struct priv *)ia->iface->ctx->priv;
+ return ioctl(priv->pf_inet6_fd,
action < 0 ? SIOCDIFADDR_IN6 : SIOCAIFADDR_IN6, &ifa);
}
@@ -1161,13 +1163,15 @@ if_addrflags6(const struct in6_addr *addr, const struct interface *ifp)
{
int flags;
struct in6_ifreq ifr6;
+ struct priv *priv;
memset(&ifr6, 0, sizeof(ifr6));
strlcpy(ifr6.ifr_name, ifp->name, sizeof(ifr6.ifr_name));
ifr6.ifr_addr.sin6_family = AF_INET6;
ifr6.ifr_addr.sin6_addr = *addr;
ifa_scope(&ifr6.ifr_addr, ifp->index);
- if (ioctl(ifp->ctx->pf_inet6_fd, SIOCGIFAFLAG_IN6, &ifr6) != -1)
+ priv = (struct priv *)ifp->ctx->priv;
+ if (ioctl(priv->pf_inet6_fd, SIOCGIFAFLAG_IN6, &ifr6) != -1)
flags = ifr6.ifr_ifru.ifru_flags6;
else
flags = -1;
@@ -1180,14 +1184,15 @@ if_getlifetime6(struct ipv6_addr *ia)
struct in6_ifreq ifr6;
time_t t;
struct in6_addrlifetime *lifetime;
+ struct priv *priv;
memset(&ifr6, 0, sizeof(ifr6));
strlcpy(ifr6.ifr_name, ia->iface->name, sizeof(ifr6.ifr_name));
ifr6.ifr_addr.sin6_family = AF_INET6;
ifr6.ifr_addr.sin6_addr = ia->addr;
ifa_scope(&ifr6.ifr_addr, ia->iface->index);
- if (ioctl(ia->iface->ctx->pf_inet6_fd,
- SIOCGIFALIFETIME_IN6, &ifr6) == -1)
+ priv = (struct priv *)ia->iface->ctx->priv;
+ if (ioctl(priv->pf_inet6_fd, SIOCGIFALIFETIME_IN6, &ifr6) == -1)
return -1;
t = time(NULL);
@@ -1768,7 +1773,9 @@ _if_checkipv6(int s, struct dhcpcd_ctx *ctx,
int
if_checkipv6(struct dhcpcd_ctx *ctx, const struct interface *ifp, int own)
{
+ struct priv *priv;
- return _if_checkipv6(ctx->pf_inet6_fd, ctx, ifp, own);
+ priv = (struct priv *)ctx->priv;
+ return _if_checkipv6(priv->pf_inet6_fd, ctx, ifp, own);
}
#endif