f871de0064
76 private header files renamed to use our standard naming scheme. This change affects 322 files in libcurl's source tree.
36 lines
1.5 KiB
Plaintext
36 lines
1.5 KiB
Plaintext
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 curl_hostip.h is the single united header file for all this. It defines
|
|
the CURLRES_* defines based on the config*.h and curl_setup.h defines.
|