goto cleanup;
}
address->length = (unsigned int)res->ai_addrlen;
- memmove(&address->type.ss, res->ai_addr, res->ai_addrlen);
+ memmove(&address->type.sa, res->ai_addr, res->ai_addrlen);
ISC_LINK_INIT(address, link);
ISC_LIST_APPEND(*nameservers, address, link);
*/
struct isc_sockaddr {
union {
- struct sockaddr sa;
- struct sockaddr_in sin;
- struct sockaddr_in6 sin6;
- struct sockaddr_storage ss;
- struct sockaddr_un sunix;
+ struct sockaddr sa;
+ struct sockaddr_in sin;
+ struct sockaddr_in6 sin6;
} type;
unsigned int length; /* XXXRTH beginning? */
ISC_LINK(struct isc_sockaddr) link;
memmove(&t->type.in6, &s->type.sin6.sin6_addr, 16);
t->zone = s->type.sin6.sin6_scope_id;
break;
- case AF_UNIX:
- memmove(t->type.un, s->type.sunix.sun_path, sizeof(t->type.un));
- t->zone = 0;
- break;
default:
UNREACHABLE();
}
ntohs(sockaddr->type.sin6.sin6_port));
break;
case AF_UNIX:
- plen = strlen(sockaddr->type.sunix.sun_path);
- if (plen >= isc_buffer_availablelength(target)) {
- return ISC_R_NOSPACE;
- }
-
- isc_buffer_putmem(
- target,
- (const unsigned char *)sockaddr->type.sunix.sun_path,
- plen);
-
- /*
- * Null terminate after used region.
- */
- isc_buffer_availableregion(target, &avail);
- INSIST(avail.length >= 1);
- avail.base[0] = '\0';
-
- return ISC_R_SUCCESS;
+ return ISC_R_NOTIMPLEMENTED;
default:
return ISC_R_FAILURE;
}
}
isc_result_t
-isc_sockaddr_frompath(isc_sockaddr_t *sockaddr, const char *path) {
- if (strlen(path) >= sizeof(sockaddr->type.sunix.sun_path)) {
- return ISC_R_NOSPACE;
- }
- memset(sockaddr, 0, sizeof(*sockaddr));
- sockaddr->length = sizeof(sockaddr->type.sunix);
- sockaddr->type.sunix.sun_family = AF_UNIX;
- strlcpy(sockaddr->type.sunix.sun_path, path,
- sizeof(sockaddr->type.sunix.sun_path));
- return ISC_R_SUCCESS;
+isc_sockaddr_frompath(isc_sockaddr_t *sockaddr ISC_ATTR_UNUSED,
+ const char *path ISC_ATTR_UNUSED) {
+ return ISC_R_NOTIMPLEMENTED;
}
isc_result_t
length = sizeof(isa->type.sin6);
break;
case AF_UNIX:
- length = sizeof(isa->type.sunix);
- break;
+ return ISC_R_NOTIMPLEMENTED;
default:
return ISC_R_NOTIMPLEMENTED;
}