sockaddr_storage.ss_len is not mandated by POSIX, so we shouldn't use
it. Instead, use addrinfo.ai_addrlen.
p->ai.ai_addr = NULL;
bcopy(res->ai_addr, &p->sa, p->ai.ai_addrlen);
- getnameinfo((struct sockaddr *)&p->sa, p->sa.ss_len,
+ getnameinfo((struct sockaddr *)&p->sa, p->ai.ai_addrlen,
p->addr, sizeof(p->addr),
NULL, 0, NI_NUMERICHOST);
return (-1);
}
- if (connect(fd, (struct sockaddr *)&h->sa, h->sa.ss_len) < 0) {
+ if (connect(fd, (struct sockaddr *)&h->sa, h->ai.ai_addrlen) < 0) {
syslog(LOG_INFO, "connect to %s [%s] failed: %m",
h->host, h->addr);
close(fd);