- assert(sizeof(*ip) == sizeof(struct addr46));
- assert(ip->af == AF_INET || ip->af == AF_INET6);
-
- if (ip->af == AF_INET)
- return writen(fd, &ip->addr.ip, sizeof(ip->addr.ip));
- else
- return writen(fd, &ip->addr.ip6, sizeof(ip->addr.ip6));
+ if (a->family == IPv4)
+ return writen(fd, &(a->ip.v4), sizeof(a->ip.v4));
+ else {
+ assert(a->family == IPv6);
+ return writen(fd, a->ip.v6.s6_addr, sizeof(a->ip.v6.s6_addr));
+ }