Name Date Size

..29-Nov-20194 KiB

.gitignoreH A D29-Aug-2017557

.travis.ymlH A D18-May-20183.8 KiB

acinclude.m4H A D29-Aug-201751.3 KiB

acountry.1H A D29-Aug-20171.7 KiB

acountry.cH A D17-Jul-201924.4 KiB

adig.1H A D29-Aug-20172.3 KiB

adig.cH A D17-Jul-201922.2 KiB

ahost.1H A D29-Aug-20172 KiB

ahost.cH A D17-Jul-20195 KiB

appveyor.ymlH A D11-Sep-20171 KiB

ares.hH A D18-Jun-201924.9 KiB

ares__close_sockets.cH A D21-May-20191.9 KiB

ares__get_hostent.cH A D29-Aug-20176.8 KiB

ares__parse_into_addrinfo.cH A D18-Jun-20197.3 KiB

ares__read_line.cH A D29-Aug-20172.1 KiB

ares__readaddrinfo.cH A D18-Jun-20197 KiB

ares__sortaddrinfo.cH A D14-Oct-201913.5 KiB

ares__timeval.cH A D29-Aug-20173 KiB

ares_android.cH A D14-Oct-201913 KiB

ares_android.hH A D08-Aug-20181,014

ares_build.h.cmakeH A D29-Aug-20171,009

ares_build.h.distH A D29-Aug-20176.7 KiB

ares_build.h.inH A D29-Aug-20173.6 KiB

ares_cancel.3H A D29-Aug-20171.6 KiB

ares_cancel.cH A D29-Aug-20172.2 KiB

ares_config.h.cmakeH A D18-Jun-201912.8 KiB

ares_create_query.3H A D23-Oct-20182.9 KiB

ares_create_query.cH A D04-Feb-20196.2 KiB

ares_data.cH A D27-Oct-20176.3 KiB

ares_data.hH A D29-Aug-20173 KiB

ares_destroy.3H A D29-Aug-20171.5 KiB

ares_destroy.cH A D16-Sep-20183 KiB

ares_destroy_options.3H A D29-Aug-20171.3 KiB

ares_dns.hH A D29-Aug-20175.2 KiB

ares_dup.3H A D29-Aug-20171.4 KiB

ares_expand_name.3H A D29-Aug-20172.1 KiB

ares_expand_name.cH A D29-Aug-20176.1 KiB

ares_expand_string.3H A D29-Aug-20172 KiB

ares_expand_string.cH A D29-Aug-20171.8 KiB

ares_fds.3H A D29-Aug-20171.9 KiB

ares_fds.cH A D29-Aug-20171.9 KiB

ares_free_data.3H A D29-Aug-20172.8 KiB

ares_free_hostent.3H A D29-Aug-20171.6 KiB

ares_free_hostent.cH A D29-Aug-20171.2 KiB

ares_free_string.3H A D29-Aug-20171.2 KiB

ares_free_string.cH A D29-Aug-2017831

ares_freeaddrinfo.3H A D18-Jun-20191.2 KiB

ares_freeaddrinfo.cH A D18-Jun-20191.5 KiB

ares_get_servers.3H A D29-Aug-20173.2 KiB

ares_get_servers_ports.3H A D29-Aug-201728

ares_getaddrinfo.3H A D25-Jun-20194.9 KiB

ares_getaddrinfo.cH A D16-Nov-201918.6 KiB

ares_getenv.cH A D14-Oct-2019841

ares_getenv.hH A D29-Aug-2017899

ares_gethostbyaddr.3H A D29-Aug-20173 KiB

ares_gethostbyaddr.cH A D18-Sep-20178.5 KiB

ares_gethostbyname.3H A D29-Sep-20173.2 KiB

ares_gethostbyname.cH A D02-May-201915.6 KiB

ares_gethostbyname_file.3H A D29-Aug-20172.5 KiB

ares_getnameinfo.3H A D29-Aug-20174.2 KiB

ares_getnameinfo.cH A D23-Oct-201813.2 KiB

ares_getopt.cH A D29-Aug-20174.5 KiB

ares_getopt.hH A D29-Aug-20172 KiB

ares_getsock.3H A D29-Aug-20172.1 KiB

ares_getsock.cH A D29-Aug-20172.2 KiB

ares_inet_net_pton.hH A D29-Aug-2017982

ares_inet_ntop.3H A D29-Aug-20171.9 KiB

ares_inet_pton.3H A D29-Aug-20171.7 KiB

ares_init.3H A D29-Aug-20172.4 KiB

ares_init.cH A D16-Nov-201974.4 KiB

ares_init_options.3H A D06-Oct-20199.3 KiB

ares_iphlpapi.hH A D29-Aug-20175.8 KiB

ares_ipv6.hH A D23-Jan-20192 KiB

ares_library_cleanup.3H A D29-Aug-20173.6 KiB

ares_library_init.3H A D07-Feb-20184.6 KiB

ares_library_init.cH A D17-May-20185 KiB

ares_library_init.hH A D29-Aug-20171.7 KiB

ares_library_init_android.3H A D09-Aug-20195.1 KiB

ares_library_initialized.3H A D29-Aug-20171.2 KiB

ares_llist.cH A D29-Aug-20171.8 KiB

ares_llist.hH A D29-Aug-20171.2 KiB

ares_mkquery.3H A D23-Oct-20182.7 KiB

ares_mkquery.cH A D29-Aug-2017964

ares_nowarn.cH A D29-Aug-20175.5 KiB

ares_nowarn.hH A D29-Aug-20171.7 KiB

ares_options.cH A D17-May-201811 KiB

ares_parse_a_reply.3H A D18-Jun-20192.3 KiB

ares_parse_a_reply.cH A D24-Jun-20194.7 KiB

ares_parse_aaaa_reply.3H A D18-Jun-20192.3 KiB

ares_parse_aaaa_reply.cH A D24-Jun-20194.9 KiB

ares_parse_mx_reply.3H A D29-Aug-20172.1 KiB

ares_parse_mx_reply.cH A D29-Aug-20174.4 KiB

ares_parse_naptr_reply.3H A D29-Aug-20172.3 KiB

ares_parse_naptr_reply.cH A D29-Aug-20175.2 KiB

ares_parse_ns_reply.3H A D29-Aug-20172 KiB

ares_parse_ns_reply.cH A D29-Aug-20175 KiB

ares_parse_ptr_reply.3H A D29-Aug-20172.2 KiB

ares_parse_ptr_reply.cH A D23-Jun-20186.7 KiB

ares_parse_soa_reply.3H A D29-Aug-20172.1 KiB

ares_parse_soa_reply.cH A D29-Aug-20173.2 KiB

ares_parse_srv_reply.3H A D29-Aug-20172.3 KiB

ares_parse_srv_reply.cH A D29-Aug-20174.7 KiB

ares_parse_txt_reply.3H A D29-Aug-20173.4 KiB

ares_parse_txt_reply.cH A D29-Aug-20175.9 KiB

ares_platform.cH A D10-Feb-2018481.6 KiB

ares_platform.hH A D29-Aug-20171.1 KiB

ares_private.hH A D18-Jun-201912.9 KiB

ares_process.3H A D08-Feb-20182.9 KiB

ares_process.cH A D21-May-201945.8 KiB

ares_query.3H A D29-Aug-20174.2 KiB

ares_query.cH A D29-Aug-20174.9 KiB

ares_rules.hH A D15-May-20184.2 KiB

ares_save_options.3H A D29-Aug-20172.6 KiB

ares_search.3H A D29-Aug-20174.6 KiB

ares_search.cH A D06-Nov-20189.5 KiB

ares_send.3H A D29-Aug-20173.3 KiB

ares_send.cH A D15-Mar-20184.1 KiB

ares_set_local_dev.3H A D29-Aug-20171.5 KiB

ares_set_local_ip4.3H A D29-Aug-20171.2 KiB

ares_set_local_ip6.3H A D29-Aug-20171.3 KiB

ares_set_servers.3H A D17-May-20183.6 KiB

ares_set_servers_csv.3H A D17-May-20182.3 KiB

ares_set_servers_ports.3H A D29-Aug-201728

ares_set_servers_ports_csv.3H A D29-Aug-201732

ares_set_socket_callback.3H A D29-Aug-20171.1 KiB

ares_set_socket_configure_callback.3H A D29-Aug-20171.2 KiB

ares_set_socket_functions.3H A D29-Aug-20173.4 KiB

ares_set_sortlist.3H A D29-Aug-20172 KiB

ares_setup.hH A D29-Aug-20175.8 KiB

ares_strcasecmp.cH A D29-Aug-20171.6 KiB

ares_strcasecmp.hH A D29-Aug-20171 KiB

ares_strdup.cH A D29-Aug-20171.3 KiB

ares_strdup.hH A D29-Aug-2017870

ares_strerror.3H A D29-Aug-20171.3 KiB

ares_strerror.cH A D29-Aug-20171.9 KiB

ares_strsplit.cH A D08-Aug-20183.5 KiB

ares_strsplit.hH A D08-Aug-20181.6 KiB

ares_timeout.3H A D29-Aug-20171.9 KiB

ares_timeout.cH A D29-Aug-20172.7 KiB

ares_version.3H A D29-Aug-20171.3 KiB

ares_version.cH A D29-Aug-2017158

ares_version.hH A D01-Nov-2018648

ares_writev.cH A D29-Aug-20171.8 KiB

ares_writev.hH A D29-Aug-20171.1 KiB

AUTHORSH A D03-Feb-20181.2 KiB

bitncmp.cH A D29-Aug-20171.6 KiB

bitncmp.hH A D29-Aug-2017905

buildconfH A D29-Aug-20178.1 KiB

buildconf.batH A D29-Aug-2017527

c-ares-config.cmake.inH A D24-Dec-2019725

cares.rcH A D29-Aug-20172 KiB

CHANGESH A D29-Aug-2017252

CHANGES.0H A D29-Aug-201746.1 KiB

CMakeLists.txtH A D24-Dec-201927.4 KiB

config-dos.hH A D29-Aug-20173.1 KiB

config-win32.hH A D08-Aug-201810.6 KiB

configure.acH A D23-Oct-201821.9 KiB

CONTRIBUTING.mdH A D29-Aug-2017707

get_ver.awkH A D29-Aug-20171.2 KiB

GIT-INFOH A D29-Aug-2017347

git2changes.plH A D29-Aug-20171.7 KiB

inet_net_pton.cH A D29-Aug-201711.2 KiB

inet_ntop.cH A D08-Aug-20185.7 KiB

install-shH A D29-Aug-201713.7 KiB

INSTALL.mdH A D10-Feb-201812.1 KiB

libcares.pc.cmakeH A D16-Feb-2018684

libcares.pc.inH A D29-Aug-2017612

LICENSE.mdH A D06-Feb-2018766

m4/H18-Jun-20194 KiB

Makefile.amH A D23-Oct-20186.7 KiB

Makefile.djH A D29-Aug-20171.6 KiB

Makefile.incH A D18-Jun-20196.5 KiB

Makefile.m32H A D29-Aug-20171.9 KiB

Makefile.msvcH A D11-Sep-201715.2 KiB

Makefile.netwareH A D29-Aug-201714.1 KiB

Makefile.WatcomH A D29-Aug-20173.8 KiB

maketgzH A D16-Feb-20181.9 KiB

mkinstalldirsH A D29-Aug-20173.5 KiB

msvc_ver.incH A D11-Sep-2017678

nameser.hH A D29-Aug-20178.2 KiB

NEWSH A D29-Aug-2017854

README.caresH A D29-Aug-2017690

README.mdH A D09-Oct-20193.5 KiB

README.msvcH A D29-Aug-20175.3 KiB

RELEASE-NOTESH A D23-Oct-20181.9 KiB


SECURITY.mdH A D29-Aug-20174.4 KiB

setup_once.hH A D29-Aug-201715 KiB

test/H16-Nov-20194 KiB

TODOH A D29-Aug-2017727

travis/H16-Feb-20184 KiB

vc/H29-Aug-20174 KiB

windows_port.cH A D29-Aug-2017403


4This package is based on ares 1.1.1 (written by Greg Hudson). Daniel Stenberg
5decided to fork and release a separate project since the original ares author
6didn't want the improvements that were vital for our use of it.
8This package is dubbed 'c-ares' since Daniel wanted this for use within the
9curl project (hence the letter C) and it makes a nice pun. c-ares is not API
10compatible with ares: a new name makes that more obvious to the public.
12The original libares was distributed at
13 (which seems to not be alive
14anymore).  A local copy of the original ares package is kept here:

4[![Build Status](](
5[![Windows Build Status](](
6[![Coverage Status](](
7[![CII Best Practices](](
8[![Fuzzing Status](](
11This is c-ares, an asynchronous resolver library.  It is intended for
12applications which need to perform DNS queries without blocking, or need to
13perform multiple DNS queries in parallel.  The primary examples of such
14applications are servers which communicate with multiple clients and programs
15with graphical user interfaces.
17The full source code is available in the ['c-ares' release archives](,
18and in a git repository:  See the
19[]( file for build information.
21If you find bugs, correct flaws, have questions or have comments in general in
22regard to c-ares (or by all means the original ares too), get in touch with us
23on the c-ares mailing list:
25c-ares is of course distributed under the same MIT-style license as the
26original ares.
28You'll find all c-ares details and news here:
32Notes for c-ares hackers
35* The distributed `ares_build.h` file is only intended to be used on systems
36  which can not run the also distributed configure script.
38* The distributed `ares_build.h` file is generated as a copy of `ares_build.h.dist`
39  when the c-ares source code distribution archive file is originally created.
41* If you check out from git on a non-configure platform, you must run the
42  appropriate `buildconf*` script to set up `ares_build.h` and other local files
43  before being able to compile the library.
45* On systems capable of running the `configure` script, the `configure` process
46  will overwrite the distributed `ares_build.h` file with one that is suitable
47  and specific to the library being configured and built, this new file is
48  generated from the `` template file.
50* If you intend to distribute an already compiled c-ares library you **MUST**
51  also distribute along with it the generated `ares_build.h` which has been
52  used to compile it. Otherwise the library will be of no use for the users of
53  the library that you have built. It is **your** responsibility to provide this
54  file. No one at the c-ares project can know how you have built the library.
56* File `ares_build.h` includes platform and configuration dependent info,
57  and must not be modified by anyone. Configure script generates it for you.
59* We cannot assume anything else but very basic compiler features being
60  present. While c-ares requires an ANSI C compiler to build, some of the
61  earlier ANSI compilers clearly can't deal with some preprocessor operators.
63* Newlines must remain unix-style for older compilers' sake.
65* Comments must be written in the old-style /* unnested C-fashion */
67* Try to keep line lengths below 80 columns.


3                          ___       __ _ _ __ ___  ___ 
4                         / __| ___ / _` | '__/ _ \/ __|
5                        | (_  |___| (_| | | |  __/\__ \
6                         \___|     \__,_|_|  \___||___/
9                How to build c-ares using MSVC or Visual Studio
10               =================================================
14  How to build using MSVC from the command line
15  ---------------------------------------------
17  Open a command prompt window and ensure that the environment is properly
18  set up in order to use MSVC or Visual Studio compiler tools.
20  Change to c-ares source folder where Makefile.msvc file is located and run:
22  > nmake -f Makefile.msvc
24  This will build all c-ares libraries as well as three sample programs.
26  Once the above command has finished a new folder named MSVCXX will exist
27  below the folder where makefile.msvc is found. The name of the folder
28  depends on the MSVC compiler version being used to build c-ares.
30  Below the MSVCXX folder there will exist four folders named 'cares',
31  'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
32  holds the c-ares libraries you have just generated, the other three
33  hold sample programs that use the libraries.
35  The above command builds four versions of the c-ares library, dynamic
36  and static versions and each one in release and debug flavours. Each
37  of these is found in folders named dll-release, dll-debug, lib-release,
38  and lib-debug, which hang from the 'cares' folder mentioned above. Each
39  sample program also has folders with the same names to reflect which
40  library version it is using.
43  How to install using MSVC from the command line
44  -----------------------------------------------
46  In order to allow easy usage of c-ares libraries it may be convenient to
47  install c-ares libraries and header files to a common subdirectory tree.
49  Once that c-ares libraries have been built using procedure described above,
50  use same command prompt window to define environment variable INSTALL_DIR
51  to designate the top subdirectory where installation of c-ares libraries and
52  header files will be done.
54  > set INSTALL_DIR=c:\c-ares
56  Afterwards, run following command to actually perform the installation:
58  > nmake -f Makefile.msvc install
60  Installation procedure will copy c-ares libraries to subdirectory 'lib' and
61  c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
63  When environment variable INSTALL_DIR is not defined, installation is done
64  to c-ares source folder where Makefile.msvc file is located.
67  How to build using Visual Studio 6 IDE
68  --------------------------------------
70  A VC++ 6.0 reference workspace (vc6aws.dsw) is available within the 'vc'
71  folder to allow proper building of the library and sample programs.
73  1) Open the vc6aws.dsw workspace with MSVC6's IDE.
74  2) Select 'Build' from top menu.
75  3) Select 'Batch Build' from dropdown menu.
76  4) Make sure that the sixteen project configurations are 'checked'.
77  5) Click on the 'Build' button.
78  6) Once the sixteen project configurations are built you are done.
80  Dynamic and static c-ares libraries are built in debug and release flavours,
81  and can be located each one in its own subdirectory, dll-debug, dll-release,
82  lib-debug and lib-release, all of them below the 'vc\cares' subdirectory.
84  In the same way four executable versions of each sample program are built,
85  each using its respective library. The resulting sample executables are
86  located in its own subdirectory, dll-debug, dll-release, lib-debug and
87  lib-release, below the 'vc\acountry', 'vc\adig' and 'vc\ahost'folders.
89  These reference VC++ 6.0 configurations are generated using the dynamic CRT.
92  How to build using Visual Studio 2003 or newer IDE
93  --------------------------------------------------
95  First you have to convert the VC++ 6.0 reference workspace and project files
96  to the Visual Studio IDE version you are using, following next steps:
98  1) Open vc\vc6aws.dsw with VS20XX.
99  2) Allow VS20XX to update all projects and workspaces.
100  3) Save ALL and close VS20XX.
101  4) Open vc\vc6aws.sln with VS20XX.
102  5) Select batch build, check 'all' projects and click 'build' button.
104  Same comments relative to generated files and folders as done above for
105  Visual Studio 6 IDE apply here.
108  Relationship between c-ares library file names and versions
109  -----------------------------------------------------------
111  c-ares static release library version files:
113      libcares.lib -> static release library
115  c-ares static debug library version files:
117      libcaresd.lib -> static debug library
119  c-ares dynamic release library version files:
121      cares.dll -> dynamic release library
122      cares.lib -> import library for the dynamic release library
123      cares.exp -> export file for the dynamic release library
125  c-ares dynamic debug library version files:
127      caresd.dll -> dynamic debug library
128      caresd.lib -> import library for the dynamic debug library
129      caresd.exp -> export file for the dynamic debug library
130      caresd.pdb -> debug symbol file for the dynamic debug library
133  How to use c-ares static libraries
134  ----------------------------------
136  When using the c-ares static library in your program, you will have to
137  define preprocessor symbol CARES_STATICLIB while building your program,
138  otherwise you will get errors at linkage stage.
141Have Fun!