mirror of https://git.musl-libc.org/git/musl
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
479 B
25 lines
479 B
#define _GNU_SOURCE
|
|
|
|
#include <sys/socket.h>
|
|
#include <netdb.h>
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
|
|
struct hostent *gethostbyname2(const char *name, int af)
|
|
{
|
|
static struct hostent *h;
|
|
size_t size = 63;
|
|
struct hostent *res;
|
|
int err;
|
|
do {
|
|
free(h);
|
|
h = malloc(size+=size+1);
|
|
if (!h) {
|
|
h_errno = NO_RECOVERY;
|
|
return 0;
|
|
}
|
|
err = gethostbyname2_r(name, af, h,
|
|
(void *)(h+1), size-sizeof *h, &res, &h_errno);
|
|
} while (err == ERANGE);
|
|
return err ? 0 : h;
|
|
}
|
|
|