int socktype, int port);
static void set_order(int, int (**)(const char *, int, struct addrinfo **,
int, int));
+static void _freeaddrinfo(struct addrinfo *ai);
#define FOUND_IPV4 0x1
#define FOUND_IPV6 0x2
if (family == AF_INET6 || family == 0) {
ai = ai_alloc(AF_INET6, sizeof(struct sockaddr_in6));
if (ai == NULL) {
- freeaddrinfo(ai_list);
+ _freeaddrinfo(ai_list);
return (EAI_MEMORY);
}
ai->ai_socktype = socktype;
NI_NUMERICHOST) == 0) {
ai->ai_canonname = strdup(nbuf);
if (ai->ai_canonname == NULL) {
- freeaddrinfo(ai);
+ _freeaddrinfo(ai);
return (EAI_MEMORY);
}
} else {
socktype, port);
if (err != 0) {
if (ai_list != NULL) {
- freeaddrinfo(ai_list);
+ _freeaddrinfo(ai_list);
ai_list = NULL;
}
break;
error = EAI_NONAME;
} else {
if (trans->ai_sentinel.ai_next != NULL) {
- freeaddrinfo(trans->ai_sentinel.ai_next);
+ _freeaddrinfo(trans->ai_sentinel.ai_next);
trans->ai_sentinel.ai_next = NULL;
}
}
ai = ai_clone(*aip, AF_INET); /* don't use ai_clone() */
if (ai == NULL) {
- freeaddrinfo(*aip);
+ _freeaddrinfo(*aip);
return (EAI_MEMORY);
}
/*% Free address info. */
void
freeaddrinfo(struct addrinfo *ai) {
+ _freeaddrinfo(ai);
+}
+
+static void
+_freeaddrinfo(struct addrinfo *ai) {
struct addrinfo *ai_next;
while (ai != NULL) {