91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
for (retIter = ret, resultsIter = results, res = res0;
res != NULL; retIter++, resultsIter++, res = res->ai_next) {
resultsIter->family = res->ai_family;
resultsIter->type = res->ai_socktype;
resultsIter->protocol = res->ai_protocol;
resultsIter->address = res->ai_addr;
resultsIter->addressLength = res->ai_addrlen;
resultsIter->private = NULL;
*retIter = resultsIter;
}
*retIter = NULL;
ret[0]->private = res0;
#else
struct hostent *he;
in_addr_t s_addr;
char **ip;
struct sockaddr_in *addrs, *addrsIter;
/*
|
<
|
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
for (retIter = ret, resultsIter = results, res = res0;
res != NULL; retIter++, resultsIter++, res = res->ai_next) {
resultsIter->family = res->ai_family;
resultsIter->type = res->ai_socktype;
resultsIter->protocol = res->ai_protocol;
resultsIter->address = res->ai_addr;
resultsIter->addressLength = res->ai_addrlen;
*retIter = resultsIter;
}
*retIter = NULL;
ret[0]->private_ = res0;
#else
struct hostent *he;
in_addr_t s_addr;
char **ip;
struct sockaddr_in *addrs, *addrsIter;
/*
|
268
269
270
271
272
273
274
275
276
277
278
279
280
281
|
#endif
}
void
of_resolver_free(of_resolver_result_t **results)
{
#ifdef HAVE_THREADSAFE_GETADDRINFO
freeaddrinfo(results[0]->private);
#else
free(results[0]->address);
#endif
free(results[0]);
free(results);
}
|
|
|
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
#endif
}
void
of_resolver_free(of_resolver_result_t **results)
{
#ifdef HAVE_THREADSAFE_GETADDRINFO
freeaddrinfo(results[0]->private_);
#else
free(results[0]->address);
#endif
free(results[0]);
free(results);
}
|