curl-library
Re: [PATCH] Curl_gethostname() may or may not return the hostname as a FQDN
Date: Thu, 11 Aug 2011 10:39:16 +0200 (CEST)
On Wed, 10 Aug 2011, Steve Holme wrote:
> In addition to this, I also noticed that whilst reworking the NTLM code, in
> http_ntlm.c, it will strip off the domain name if that has been returned
> from Curl_gethostname() - this also tells me that this function should be
> returning the FQDN.
Ok, yes I can see how this is necessary for some uses of this function. I
would however suggest that we add an option to the function so that we don't
spend time to lookup the full name, possibly using a slow DNS server, only to
have the calling code strip off the domain again!
> I would have suggested a call to gethostbyname() but this is deprecated in
> Windows and, from what I have read online, from the current version of the
> POSIX specification due to problems with IPV6.
Welcome to a world of pain. :-)
getaddrinfo() is not present on _lots_ of operating systems that we still
support. gethostbyname() is not thread-safe on lots of operating systems that
we still support. gethostbyname_r() is used in three different ways on
operating systems that we still support... And we offer alternative name
resolver libs like c-ares for them all!
So, to resolve a host name within libcurl we're pretty much forced to use
Curl_resolv() or probably even Curl_resolv_timeout() so that timeouts are
properly acknowledged.
This also has the added benefit that it adds the resolved address to the DNS
cache, should this be needed to get resolved again within a short period of
time.
-- / daniel.haxx.se ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.htmlReceived on 2011-08-11