Newer
Older
Troels Walsted Hansen helped us work this out on March 3rd, 2003. */
if(CURL_NAMELOOKUP_SIZE >=
(sizeof(struct hostent)+sizeof(struct hostent_data)))
Daniel Stenberg
committed
/* August 22nd, 2000: Albert Chin-A-Young brought an updated version
* that should work! September 20: Richard Prescott worked on the buffer
* size dilemma. */
(struct hostent *)buf,
(struct hostent_data *)((char *)buf +
sizeof(struct hostent)));
else
ret = -1; /* failure, too smallish buffer size */
/* result expected in h */
h = (struct hostent*)buf;
h_errnop= errno; /* we don't deal with this, but set it anyway */
Daniel Stenberg
committed
#endif /* HAVE_GETHOSTBYNAME_R_3 */
infof(data, "gethostbyname_r(2) failed for %s\n", hostname);
h = NULL; /* set return code to NULL */
Daniel Stenberg
committed
#else /* HAVE_GETHOSTBYNAME_R */
else {
if ((h = gethostbyname(hostname)) == NULL ) {
infof(data, "gethostbyname(2) failed for %s\n", hostname);
}
Daniel Stenberg
committed
else
{
char *buf=(char *)malloc(CURL_NAMELOOKUP_SIZE);
Daniel Stenberg
committed
/* we make a copy of the hostent right now, right here, as the
static one we got a pointer to might get removed when we don't
want/expect that */
h = pack_hostent(&buf, h);
}
Daniel Stenberg
committed
#endif /*HAVE_GETHOSTBYNAME_R */
Daniel Stenberg
committed
#endif /* end of IPv4-specific code */
Daniel Stenberg
committed
#endif /* end of !USE_ARES */