if (ap == NULL) {
ap = calloc(1, sizeof(*ap));
ap->iface = ifp;
- memcpy(ap->addr.s6_addr, addr->s6_addr,
- sizeof(ap->addr.s6_addr));
+ ap->addr = *addr;
TAILQ_INSERT_TAIL(&state->addrs,
ap, next);
}
char gatebuf[INET6_ADDRSTRLEN];
const char *ifname = rt->iface->name, *dest, *gate;
- dest = inet_ntop(AF_INET6, &rt->dest.s6_addr,
- destbuf, INET6_ADDRSTRLEN);
- gate = inet_ntop(AF_INET6, &rt->gate.s6_addr,
- gatebuf, INET6_ADDRSTRLEN);
+ dest = inet_ntop(AF_INET6, &rt->dest, destbuf, INET6_ADDRSTRLEN);
+ gate = inet_ntop(AF_INET6, &rt->gate, gatebuf, INET6_ADDRSTRLEN);
if (IN6_ARE_ADDR_EQUAL(&rt->gate, &in6addr_any))
syslog(LOG_INFO, "%s: %s route to %s/%d", ifname, cmd,
dest, ipv6_prefixlen(&rt->net));
dst.sin6_len = sizeof(dst);
#endif
dst.sin6_scope_id = ifp->index;
- if (inet_pton(AF_INET6, ALLROUTERS, &dst.sin6_addr.s6_addr) != 1) {
+ if (inet_pton(AF_INET6, ALLROUTERS, &dst.sin6_addr) != 1) {
syslog(LOG_ERR, "%s: %m", __func__);
return;
}
ap->dadcounter = dadcounter;
ap->flags &= ~(IPV6_AF_ADDED | IPV6_AF_DADCOMPLETED);
ap->flags |= IPV6_AF_NEW;
- p = inet_ntop(AF_INET6, ap->addr.s6_addr,
- buf, sizeof(buf));
+ p = inet_ntop(AF_INET6, &ap->addr, buf, sizeof(buf));
if (p)
snprintf(ap->saddr,
sizeof(ap->saddr),
TAILQ_FOREACH(rap, ctx->ra_routers, next) {
if (ifp == rap->iface &&
- memcmp(rap->from.s6_addr, ctx->from.sin6_addr.s6_addr,
- sizeof(rap->from.s6_addr)) == 0)
+ IN6_ARE_ADDR_EQUAL(&rap->from, &ctx->from.sin6_addr))
break;
}
return;
}
rap->iface = ifp;
- memcpy(rap->from.s6_addr, ctx->from.sin6_addr.s6_addr,
- sizeof(rap->from.s6_addr));
+ rap->from = ctx->from.sin6_addr;
strlcpy(rap->sfrom, ctx->sfrom, sizeof(rap->sfrom));
TAILQ_INIT(&rap->addrs);
TAILQ_INIT(&rap->options);
}
TAILQ_FOREACH(ap, &rap->addrs, next)
if (ap->prefix_len ==pi->nd_opt_pi_prefix_len &&
- memcmp(ap->prefix.s6_addr,
- pi->nd_opt_pi_prefix.s6_addr,
- sizeof(ap->prefix.s6_addr)) == 0)
+ IN6_ARE_ADDR_EQUAL(&ap->prefix,
+ &pi->nd_opt_pi_prefix))
break;
if (ap == NULL) {
if (!(pi->nd_opt_pi_flags_reserved &
ap->iface = rap->iface;
ap->flags = IPV6_AF_NEW;
ap->prefix_len = pi->nd_opt_pi_prefix_len;
- memcpy(ap->prefix.s6_addr,
- pi->nd_opt_pi_prefix.s6_addr,
- sizeof(ap->prefix.s6_addr));
+ ap->prefix = pi->nd_opt_pi_prefix;
if (pi->nd_opt_pi_flags_reserved &
ND_OPT_PI_FLAG_AUTO)
{
break;
}
cbp = inet_ntop(AF_INET6,
- ap->addr.s6_addr,
+ &ap->addr,
buf, sizeof(buf));
if (cbp)
snprintf(ap->saddr,
op += sizeof(rdnss->nd_opt_rdnss_lifetime);
l = 0;
for (n = ndo->nd_opt_len - 1; n > 1; n -= 2,
- op += sizeof(addr.s6_addr))
+ op += sizeof(addr))
{
r = ipv6_printaddr(NULL, 0, op, ifp->name);
if (r != -1)
if (opt == NULL)
continue;
for (n = ndo->nd_opt_len - 1; n > 1; n -= 2,
- op += sizeof(addr.s6_addr))
+ op += sizeof(addr))
{
r = ipv6_printaddr(tmp, l, op,
ifp->name);
TAILQ_FOREACH(rap, ctx->ra_routers, next) {
if (rap->iface == ifp &&
- memcmp(rap->from.s6_addr, nd_na->nd_na_target.s6_addr,
- sizeof(rap->from.s6_addr)) == 0)
+ IN6_ARE_ADDR_EQUAL(&rap->from, &nd_na->nd_na_target))
break;
}
if (rap == NULL) {