#define _GNU_SOURCE

#include <errno.h>
#include <netdb.h>
#include <stdlib.h>
#include <sys/socket.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;
}
