{
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));
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);
}
{
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;
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);
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
if (ctx->pf_inet_fd == -1)
return -1;
-#if defined(INET6) && defined(BSD)
- ctx->pf_inet6_fd = xsocket(PF_INET6, SOCK_DGRAM, 0, SOCK_CLOEXEC);
- /* Don't return an error so we at least work on kernels witout INET6
- * even though we expect INET6 support.
- * We will fail noisily elsewhere anyway. */
-#endif
-
#ifdef IFLR_ACTIVE
ctx->pf_link_fd = xsocket(PF_LINK, SOCK_DGRAM, 0, SOCK_CLOEXEC);
if (ctx->pf_link_fd == -1)