Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
.cvsignore
Makefile.Watcom
Makefile.am
Makefile.b32
Makefile.inc
Makefile.m32
Makefile.netware
Makefile.riscos
Makefile.vc6
README.NSS
README.ares
README.curl_off_t
README.curlx
README.encoding
README.hostip
README.httpauth
README.memoryleak
README.multi_socket
README.pipelining
amigaos.c
amigaos.h
arpa_telnet.h
base64.c
config-amigaos.h
config-mac.h
config-os400.h
config-riscos.h
config-symbian.h
config-tpf.h
config-win32.h
config-win32ce.h
config.dos
connect.c
connect.h
content_encoding.c
content_encoding.h
cookie.c
cookie.h
curl_base64.h
curl_ldap.h
curl_md5.h
curllib.dsw
curlx.h
dict.c
dict.h
easy.c
easyif.h
escape.c
escape.h
file.c
file.h
firefox-db2pem.sh
formdata.c
formdata.h
ftp.c
ftp.h
getenv.c
getinfo.c
getinfo.h
gtls.c
gtls.h
hash.c
hash.h
hostares.c
hostasyn.c
hostip.c
hostip.h
hostip4.c
hostip6.c
hostsyn.c
hostthre.c
http.c
http.h
http_chunks.c
http_chunks.h
http_digest.c
http_digest.h
http_negotiate.c
http_negotiate.h
http_ntlm.c
http_ntlm.h
if2ip.c
if2ip.h
inet_ntoa_r.h
inet_ntop.c
inet_ntop.h
inet_pton.c
inet_pton.h
krb4.c
krb4.h
krb5.c
ldap.c
libcurl.def
libcurl.framework.make
libcurl.imp
libcurl.plist
libcurl.rc
llist.c
llist.h
makefile.amiga
makefile.dj
md5.c
memdebug.c
memdebug.h
memory.h
mk-ca-bundle.pl
mprintf.c
msvcproj.foot
msvcproj.head
multi.c
multiif.h
netrc.c
netrc.h
nss.c
nssg.h
nwlib.c
nwos.c
parsedate.c
parsedate.h
progress.c
progress.h
qssl.c
qssl.h
security.c
select.c
select.h
sendf.c
sendf.h
setup-os400.h
setup.h
setup_once.h
share.c
share.h
sockaddr.h
socks.c
socks.h
speedcheck.c
speedcheck.h
splay.c
splay.h
ssh.c
ssh.h
sslgen.c
sslgen.h
ssluse.c
ssluse.h
strdup.c
strdup.h
strequal.c
strequal.h
strerror.c
strerror.h
strtok.c
strtok.h
strtoofft.c
strtoofft.h
telnet.c
telnet.h
tftp.c
tftp.h
timeval.c
timeval.h
transfer.c
transfer.h
url.c
url.h
urldata.h
vc8proj.foot
vc8proj.head
version.c

README.ares

$Id$
                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

          How To Build libcurl to Use c-ares For Asynch Name Resolves
          ===========================================================

c-ares: 
  http://daniel.haxx.se/projects/c-ares/

NOTE
  The latest libcurl version requires c-ares 1.4.0 or later.

  Once upon the time libcurl built fine with the "original" ares. That is no
  longer true. You need to use c-ares.

Build c-ares
============

1. unpack the c-ares archive
2. cd c-ares-dir
3. ./configure
4. make

Build libcurl to use c-ares in the curl source tree
===================================================

1. name the c-ares source directory 'ares' in the curl source directory
   (if you have checked out the curl sources from CVS, you will already have
   c-ares in a directory named ares).
2. ./configure --enable-ares
3. make

Build libcurl to use an installed c-ares
========================================

1. ./configure --enable-ares=/path/to/ares/install
2. make

c-ares and ipv6
===============

If the configure script enables IPv6 support you need to explicitly disable
that (--disable-ipv6) since c-ares isn't IPv6 compatible (yet).

c-ares on win32
===============
(description brought by Dominick Meglio)

First I compiled c-ares. I changed the default C runtime library to be the
single-threaded rather than the multi-threaded (this seems to be required to
prevent linking errors later on). Then I simply build the areslib project (the
other projects adig/ahost seem to fail under MSVC).

Next was libcurl. I opened lib/config-win32.h and I added a:
 #define USE_ARES 1

Next thing I did was I added the path for the ares includes to the include
path, and the libares.lib to the libraries.

Lastly, I also changed libcurl to be single-threaded rather than
multi-threaded, again this was to prevent some duplicate symbol errors. I'm
not sure why I needed to change everything to single-threaded, but when I
didn't I got redefinition errors for several CRT functions (malloc, stricmp,
etc.)

I would have modified the MSVC++ project files, but I only have VC.NET and it
uses a different format than VC6.0 so I didn't want to go and change
everything and remove VC6.0 support from libcurl.
Something went wrong with that request. Please try again.