 hostip.c explained
 ==================

 The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
 source file are these:

 CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
 that. The host may not be able to resolve IPv6, but we don't really have to
 take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
 defined.

 CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
 name resolves. It cannot have ENABLE_IPV6 defined at the same time, as c-ares
 has no ipv6 support. This can be Windows or *nix.

 CURLRES_THREADED - is defined if libcurl is built to run under (native)
 Windows, and then the name resolve will be done in a new thread, and the
 supported asynch API will be the same as for ares-builds.

 If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
 libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
 defined.

 The host*.c sources files are split up like this:

 hostip.c   - method-independent resolver functions and utility functions
 hostasyn.c - functions for asynchronous name resolves
 hostsyn.c  - functions for synchronous name resolves
 hostares.c - functions for ares-using name resolves
 hostthre.c - functions for threaded name resolves
 hostip4.c  - ipv4-specific functions
 hostip6.c  - ipv6-specific functions

 The hostip.h is the single united header file for all this. It defines the
 CURLRES_* defines based on the config*.h and setup.h defines.
