aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile75
-rw-r--r--PYTHON-MANIFEST.in1
-rw-r--r--build.yaml7
-rw-r--r--setup.py9
-rw-r--r--src/c-ares/ares_build.h254
-rw-r--r--src/c-ares/config_darwin/ares_config.h512
-rw-r--r--src/c-ares/config_linux/ares_config.h524
-rwxr-xr-xsrc/c-ares/gen_build_yaml.py150
-rw-r--r--src/python/grpcio/grpc_core_dependencies.py49
-rw-r--r--tools/buildgen/generate_build_additions.sh1
-rw-r--r--tools/run_tests/sources_and_headers.json38
-rw-r--r--vsprojects/grpc.sln21
-rw-r--r--vsprojects/vcxproj/ares/ares.vcxproj284
-rw-r--r--vsprojects/vcxproj/ares/ares.vcxproj.filters248
14 files changed, 2170 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 6dacdc80dc..f67e1f352f 100644
--- a/Makefile
+++ b/Makefile
@@ -1276,7 +1276,7 @@ plugins: $(PROTOC_PLUGINS)
privatelibs: privatelibs_c privatelibs_cxx
-privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
+privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libares.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc
pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc
@@ -6560,6 +6560,79 @@ ifneq ($(NO_DEPS),true)
endif
+LIBARES_SRC = \
+ third_party/c-ares/ares__close_sockets.c \
+ third_party/c-ares/ares__get_hostent.c \
+ third_party/c-ares/ares__read_line.c \
+ third_party/c-ares/ares__timeval.c \
+ third_party/c-ares/ares_cancel.c \
+ third_party/c-ares/ares_create_query.c \
+ third_party/c-ares/ares_data.c \
+ third_party/c-ares/ares_destroy.c \
+ third_party/c-ares/ares_expand_name.c \
+ third_party/c-ares/ares_expand_string.c \
+ third_party/c-ares/ares_fds.c \
+ third_party/c-ares/ares_free_hostent.c \
+ third_party/c-ares/ares_free_string.c \
+ third_party/c-ares/ares_getenv.c \
+ third_party/c-ares/ares_gethostbyaddr.c \
+ third_party/c-ares/ares_gethostbyname.c \
+ third_party/c-ares/ares_getnameinfo.c \
+ third_party/c-ares/ares_getopt.c \
+ third_party/c-ares/ares_getsock.c \
+ third_party/c-ares/ares_init.c \
+ third_party/c-ares/ares_library_init.c \
+ third_party/c-ares/ares_llist.c \
+ third_party/c-ares/ares_mkquery.c \
+ third_party/c-ares/ares_nowarn.c \
+ third_party/c-ares/ares_options.c \
+ third_party/c-ares/ares_parse_a_reply.c \
+ third_party/c-ares/ares_parse_aaaa_reply.c \
+ third_party/c-ares/ares_parse_mx_reply.c \
+ third_party/c-ares/ares_parse_naptr_reply.c \
+ third_party/c-ares/ares_parse_ns_reply.c \
+ third_party/c-ares/ares_parse_ptr_reply.c \
+ third_party/c-ares/ares_parse_soa_reply.c \
+ third_party/c-ares/ares_parse_srv_reply.c \
+ third_party/c-ares/ares_parse_txt_reply.c \
+ third_party/c-ares/ares_platform.c \
+ third_party/c-ares/ares_process.c \
+ third_party/c-ares/ares_query.c \
+ third_party/c-ares/ares_search.c \
+ third_party/c-ares/ares_send.c \
+ third_party/c-ares/ares_strcasecmp.c \
+ third_party/c-ares/ares_strdup.c \
+ third_party/c-ares/ares_strerror.c \
+ third_party/c-ares/ares_timeout.c \
+ third_party/c-ares/ares_version.c \
+ third_party/c-ares/ares_writev.c \
+ third_party/c-ares/bitncmp.c \
+ third_party/c-ares/inet_net_pton.c \
+ third_party/c-ares/inet_ntop.c \
+ third_party/c-ares/windows_port.c \
+
+PUBLIC_HEADERS_C += \
+
+LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
+
+
+$(LIBDIR)/$(CONFIG)/libares.a: $(ZLIB_DEP) $(LIBARES_OBJS) $(CARES_DEP)
+ $(E) "[AR] Creating $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libares.a
+ $(Q) $(AR) $(AROPTS) $(LIBDIR)/$(CONFIG)/libares.a $(LIBARES_OBJS)
+ifeq ($(SYSTEM),Darwin)
+ $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libares.a
+endif
+
+
+
+
+ifneq ($(NO_DEPS),true)
+-include $(LIBARES_OBJS:.o=.dep)
+endif
+
+
LIBBAD_CLIENT_TEST_SRC = \
test/core/bad_client/bad_client.c \
diff --git a/PYTHON-MANIFEST.in b/PYTHON-MANIFEST.in
index 96bcdb515c..938db0a33c 100644
--- a/PYTHON-MANIFEST.in
+++ b/PYTHON-MANIFEST.in
@@ -7,6 +7,7 @@ graft include/grpc
graft third_party/boringssl
graft third_party/nanopb
graft third_party/zlib
+graft third_party/c-ares
include src/python/grpcio/_unixccompiler_patch.py
include src/python/grpcio/commands.py
include src/python/grpcio/grpc_version.py
diff --git a/build.yaml b/build.yaml
index 67803cbd79..a8df258151 100644
--- a/build.yaml
+++ b/build.yaml
@@ -3374,6 +3374,12 @@ configs:
UBSAN_OPTIONS: halt_on_error=1:print_stacktrace=1
timeout_multiplier: 1.5
defaults:
+ ares:
+ CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas
+ -Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
+ -DHAVE_CONFIG_H
+ CPPFLAGS: -Ithird_party/boringssl/include -fvisibility=hidden -DOPENSSL_NO_ASM
+ -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX
boringssl:
CFLAGS: -Wno-sign-conversion -Wno-conversion -Wno-unused-value -Wno-unknown-pragmas
-Wno-implicit-function-declaration -Wno-unused-variable -Wno-sign-compare $(NO_W_EXTRA_SEMI)
@@ -3457,6 +3463,7 @@ python_dependencies:
deps:
- grpc
- gpr
+ - ares
- boringssl
- z
ruby_gem:
diff --git a/setup.py b/setup.py
index cad300c144..895fd663d6 100644
--- a/setup.py
+++ b/setup.py
@@ -52,6 +52,11 @@ PYTHON_STEM = os.path.join('src', 'python', 'grpcio')
CORE_INCLUDE = ('include', '.',)
BORINGSSL_INCLUDE = (os.path.join('third_party', 'boringssl', 'include'),)
ZLIB_INCLUDE = (os.path.join('third_party', 'zlib'),)
+CARES_INCLUDE = (os.path.join('third_party', 'c-ares'), os.path.join('src', 'c-ares'),)
+if "linux" in sys.platform:
+ CARES_INCLUDE += (os.path.join('src', 'c-ares', 'config_linux'),)
+if "darwin" in sys.platform:
+ CARES_INCLUDE += (os.path.join('src', 'c-ares', 'config_darwin'),)
# Ensure we're in the proper directory whether or not we're being used by pip.
os.chdir(os.path.dirname(os.path.abspath(__file__)))
@@ -129,7 +134,7 @@ CYTHON_HELPER_C_FILES = ()
CORE_C_FILES = tuple(grpc_core_dependencies.CORE_SOURCE_FILES)
EXTENSION_INCLUDE_DIRECTORIES = (
- (PYTHON_STEM,) + CORE_INCLUDE + BORINGSSL_INCLUDE + ZLIB_INCLUDE)
+ (PYTHON_STEM,) + CORE_INCLUDE + BORINGSSL_INCLUDE + ZLIB_INCLUDE + CARES_INCLUDE)
EXTENSION_LIBRARIES = ()
if "linux" in sys.platform:
@@ -141,7 +146,7 @@ if "win32" in sys.platform:
DEFINE_MACROS = (
('OPENSSL_NO_ASM', 1), ('_WIN32_WINNT', 0x600),
- ('GPR_BACKWARDS_COMPATIBILITY_MODE', 1),)
+ ('GPR_BACKWARDS_COMPATIBILITY_MODE', 1), ('HAVE_CONFIG_H', 1),)
if "win32" in sys.platform:
DEFINE_MACROS += (('OPENSSL_WINDOWS', 1), ('WIN32_LEAN_AND_MEAN', 1),)
if '64bit' in platform.architecture()[0]:
diff --git a/src/c-ares/ares_build.h b/src/c-ares/ares_build.h
new file mode 100644
index 0000000000..7d69f1e6ae
--- /dev/null
+++ b/src/c-ares/ares_build.h
@@ -0,0 +1,254 @@
+#ifndef __CARES_BUILD_H
+#define __CARES_BUILD_H
+
+
+/* Copyright (C) 2009 - 2013 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/* ================================================================ */
+/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
+ * See file ares_build.h.in, run configure, and forget that this file
+ * exists it is only used for non-configure systems.
+ * But you can keep reading if you want ;-)
+ *
+ */
+
+/* ================================================================ */
+/* NOTES FOR NON-CONFIGURE SYSTEMS */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
+ * Nothing in this file is intended to be modified or adjusted by the
+ * c-ares library user nor by the c-ares library builder.
+ *
+ * If you think that something actually needs to be changed, adjusted
+ * or fixed in this file, then, report it on the c-ares development
+ * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/
+ *
+ * Try to keep one section per platform, compiler and architecture,
+ * otherwise, if an existing section is reused for a different one and
+ * later on the original is adjusted, probably the piggybacking one can
+ * be adversely changed.
+ *
+ * In order to differentiate between platforms/compilers/architectures
+ * use only compiler built in predefined preprocessor symbols.
+ *
+ * This header file shall only export symbols which are 'cares' or 'CARES'
+ * prefixed, otherwise public name space would be polluted.
+ *
+ * NOTE 2:
+ * -------
+ *
+ * Right now you might be staring at file ares_build.h.dist or ares_build.h,
+ * this is due to the following reason: file ares_build.h.dist is renamed
+ * to ares_build.h when the c-ares source code distribution archive file is
+ * created.
+ *
+ * File ares_build.h.dist is not included in the distribution archive.
+ * File ares_build.h is not present in the git tree.
+ *
+ * The distributed ares_build.h file is only intended to be used on systems
+ * which can not run the also distributed configure script.
+ *
+ * On systems capable of running the configure script, the configure process
+ * will overwrite the distributed ares_build.h file with one that is suitable
+ * and specific to the library being configured and built, which is generated
+ * from the ares_build.h.in template file.
+ *
+ * If you check out from git on a non-configure platform, you must run the
+ * appropriate buildconf* script to set up ares_build.h and other local files.
+ *
+ */
+
+/* ================================================================ */
+/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
+/* ================================================================ */
+
+#ifdef CARES_SIZEOF_LONG
+# error "CARES_SIZEOF_LONG shall not be defined except in ares_build.h"
+ Error Compilation_aborted_CARES_SIZEOF_LONG_already_defined
+#endif
+
+#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
+# error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
+ Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
+#endif
+
+#ifdef CARES_SIZEOF_ARES_SOCKLEN_T
+# error "CARES_SIZEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
+ Error Compilation_aborted_CARES_SIZEOF_ARES_SOCKLEN_T_already_defined
+#endif
+
+/* ================================================================ */
+/* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */
+/* ================================================================ */
+
+#if defined(__DJGPP__) || defined(__GO32__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__SALFORDC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__BORLANDC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__TURBOC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__WATCOMC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__POCC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__LCC__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__SYMBIAN32__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__MWERKS__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(_WIN32_WCE)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__MINGW32__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__VMS)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+#elif defined(__OS400__)
+# if defined(__ILEC400__)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+# define CARES_PULL_SYS_TYPES_H 1
+# define CARES_PULL_SYS_SOCKET_H 1
+# endif
+
+#elif defined(__MVS__)
+# if defined(__IBMC__) || defined(__IBMCPP__)
+# if defined(_ILP32)
+# define CARES_SIZEOF_LONG 4
+# elif defined(_LP64)
+# define CARES_SIZEOF_LONG 8
+# endif
+# define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+# define CARES_PULL_SYS_TYPES_H 1
+# define CARES_PULL_SYS_SOCKET_H 1
+# endif
+
+#elif defined(__370__)
+# if defined(__IBMC__) || defined(__IBMCPP__)
+# if defined(_ILP32)
+# define CARES_SIZEOF_LONG 4
+# elif defined(_LP64)
+# define CARES_SIZEOF_LONG 8
+# endif
+# define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+# define CARES_PULL_SYS_TYPES_H 1
+# define CARES_PULL_SYS_SOCKET_H 1
+# endif
+
+#elif defined(TPF)
+# define CARES_SIZEOF_LONG 8
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+/* ===================================== */
+/* KEEP MSVC THE PENULTIMATE ENTRY */
+/* ===================================== */
+
+#elif defined(_MSC_VER)
+# define CARES_SIZEOF_LONG 4
+# define CARES_TYPEOF_ARES_SOCKLEN_T int
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+
+/* ===================================== */
+/* KEEP GENERIC GCC THE LAST ENTRY */
+/* ===================================== */
+
+#elif defined(__GNUC__)
+# if defined(__LP64__) || \
+ defined(__x86_64__) || defined(__ppc64__)
+# define CARES_SIZEOF_LONG 8
+# elif defined(__ILP32__) || \
+ defined(__i386__) || defined(__ppc__) || defined(__arm__)
+# define CARES_SIZEOF_LONG 4
+# endif
+# define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
+# define CARES_SIZEOF_ARES_SOCKLEN_T 4
+# define CARES_PULL_SYS_TYPES_H 1
+# define CARES_PULL_SYS_SOCKET_H 1
+
+#else
+# error "Unknown non-configure build target!"
+ Error Compilation_aborted_Unknown_non_configure_build_target
+#endif
+
+/* CARES_PULL_SYS_TYPES_H is defined above when inclusion of header file */
+/* sys/types.h is required here to properly make type definitions below. */
+#ifdef CARES_PULL_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+/* CARES_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
+/* sys/socket.h is required here to properly make type definitions below. */
+#ifdef CARES_PULL_SYS_SOCKET_H
+# include <sys/socket.h>
+#endif
+
+/* Data type definition of ares_socklen_t. */
+
+#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
+ typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;
+#endif
+
+#endif /* __CARES_BUILD_H */
diff --git a/src/c-ares/config_darwin/ares_config.h b/src/c-ares/config_darwin/ares_config.h
new file mode 100644
index 0000000000..920d922c81
--- /dev/null
+++ b/src/c-ares/config_darwin/ares_config.h
@@ -0,0 +1,512 @@
+/* ares_config.h. Generated from ares_config.h.in by configure. */
+/* ares_config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* define this if ares is built for a big endian system */
+/* #undef ARES_BIG_ENDIAN */
+
+/* when building as static part of libcurl */
+/* #undef BUILDING_LIBCURL */
+
+/* when building c-ares library */
+/* #undef CARES_BUILDING_LIBRARY */
+
+/* when not building a shared library */
+/* #undef CARES_STATICLIB */
+
+/* Define to 1 to enable hiding of library internal symbols. */
+#define CARES_SYMBOL_HIDING 1
+
+/* Definition to make a library symbol externally visible. */
+#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((visibility ("default")))
+
+/* if a /etc/inet dir is being used */
+/* #undef ETC_INET */
+
+/* Define to the type qualifier of arg 1 for getnameinfo. */
+#define GETNAMEINFO_QUAL_ARG1 const
+
+/* Define to the type of arg 1 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
+
+/* Define to the type of arg 2 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG2 socklen_t
+
+/* Define to the type of args 4 and 6 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG46 socklen_t
+
+/* Define to the type of arg 7 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG7 int
+
+/* Specifies the number of arguments to getservbyport_r */
+/* #undef GETSERVBYPORT_R_ARGS */
+
+/* Specifies the size of the buffer to pass to getservbyport_r */
+/* #undef GETSERVBYPORT_R_BUFSIZE */
+
+/* Define to 1 if you have AF_INET6. */
+#define HAVE_AF_INET6 1
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 1
+
+/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */
+#define HAVE_ARPA_NAMESER_COMPAT_H 1
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Define to 1 if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the `bitncmp' function. */
+/* #undef HAVE_BITNCMP */
+
+/* Define to 1 if bool is an available type. */
+#define HAVE_BOOL_T 1
+
+/* Define to 1 if you have the clock_gettime function and monotonic timer. */
+/* #undef HAVE_CLOCK_GETTIME_MONOTONIC */
+
+/* Define to 1 if you have the closesocket function. */
+/* #undef HAVE_CLOSESOCKET */
+
+/* Define to 1 if you have the CloseSocket camel case function. */
+/* #undef HAVE_CLOSESOCKET_CAMEL */
+
+/* Define to 1 if you have the connect function. */
+#define HAVE_CONNECT 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the fcntl function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have a working fcntl O_NONBLOCK function. */
+#define HAVE_FCNTL_O_NONBLOCK 1
+
+/* Define to 1 if you have the freeaddrinfo function. */
+#define HAVE_FREEADDRINFO 1
+
+/* Define to 1 if you have a working getaddrinfo function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if the getaddrinfo function is threadsafe. */
+#define HAVE_GETADDRINFO_THREADSAFE 1
+
+/* Define to 1 if you have the gethostbyaddr function. */
+#define HAVE_GETHOSTBYADDR 1
+
+/* Define to 1 if you have the gethostbyname function. */
+#define HAVE_GETHOSTBYNAME 1
+
+/* Define to 1 if you have the gethostname function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the getnameinfo function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define to 1 if you have the getservbyport_r function. */
+/* #undef HAVE_GETSERVBYPORT_R */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have the `inet_net_pton' function. */
+#define HAVE_INET_NET_PTON 1
+
+/* Define to 1 if inet_net_pton supports IPv6. */
+#define HAVE_INET_NET_PTON_IPV6 1
+
+/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have a IPv6 capable working inet_pton function. */
+#define HAVE_INET_PTON 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the ioctl function. */
+#define HAVE_IOCTL 1
+
+/* Define to 1 if you have the ioctlsocket function. */
+/* #undef HAVE_IOCTLSOCKET */
+
+/* Define to 1 if you have the IoctlSocket camel case function. */
+/* #undef HAVE_IOCTLSOCKET_CAMEL */
+
+/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function.
+ */
+/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
+
+/* Define to 1 if you have a working ioctlsocket FIONBIO function. */
+/* #undef HAVE_IOCTLSOCKET_FIONBIO */
+
+/* Define to 1 if you have a working ioctl FIONBIO function. */
+#define HAVE_IOCTL_FIONBIO 1
+
+/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */
+#define HAVE_IOCTL_SIOCGIFADDR 1
+
+/* Define to 1 if you have the `resolve' library (-lresolve). */
+/* #undef HAVE_LIBRESOLVE */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* if your compiler supports LL */
+#define HAVE_LL 1
+
+/* Define to 1 if the compiler supports the 'long long' data type. */
+#define HAVE_LONGLONG 1
+
+/* Define to 1 if you have the malloc.h header file. */
+/* #undef HAVE_MALLOC_H */
+
+/* Define to 1 if you have the memory.h header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the MSG_NOSIGNAL flag. */
+/* #undef HAVE_MSG_NOSIGNAL */
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define to 1 if you have PF_INET6. */
+#define HAVE_PF_INET6 1
+
+/* Define to 1 if you have the recv function. */
+#define HAVE_RECV 1
+
+/* Define to 1 if you have the recvfrom function. */
+#define HAVE_RECVFROM 1
+
+/* Define to 1 if you have the send function. */
+#define HAVE_SEND 1
+
+/* Define to 1 if you have the setsockopt function. */
+#define HAVE_SETSOCKOPT 1
+
+/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */
+/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if sig_atomic_t is an available typedef. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if sig_atomic_t is already defined as volatile. */
+/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
+
+/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */
+#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if you have the socket function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the <socket.h> header file. */
+/* #undef HAVE_SOCKET_H */
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the strcmpi function. */
+/* #undef HAVE_STRCMPI */
+
+/* Define to 1 if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the stricmp function. */
+/* #undef HAVE_STRICMP */
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the strncmpi function. */
+/* #undef HAVE_STRNCMPI */
+
+/* Define to 1 if you have the strnicmp function. */
+/* #undef HAVE_STRNICMP */
+
+/* Define to 1 if you have the <stropts.h> header file. */
+/* #undef HAVE_STROPTS_H */
+
+/* Define to 1 if you have struct addrinfo. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define to 1 if you have struct in6_addr. */
+#define HAVE_STRUCT_IN6_ADDR 1
+
+/* Define to 1 if you have struct sockaddr_in6. */
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+
+/* if struct sockaddr_storage is defined */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if you have the timeval struct. */
+#define HAVE_STRUCT_TIMEVAL 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the windows.h header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the winsock2.h header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define to 1 if you have the winsock.h header file. */
+/* #undef HAVE_WINSOCK_H */
+
+/* Define to 1 if you have the writev function. */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the ws2tcpip.h header file. */
+/* #undef HAVE_WS2TCPIP_H */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Define to 1 if you are building a native Windows target. */
+/* #undef NATIVE_WINDOWS */
+
+/* Define to 1 if you need the malloc.h header file even with stdlib.h */
+/* #undef NEED_MALLOC_H */
+
+/* Define to 1 if you need the memory.h header file even with stdlib.h */
+/* #undef NEED_MEMORY_H */
+
+/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
+/* #undef NEED_REENTRANT */
+
+/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */
+/* #undef NEED_THREAD_SAFE */
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* cpu-machine-OS */
+#define OS "i386-apple-darwin9.8.0"
+
+/* Name of package */
+#define PACKAGE "c-ares"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "c-ares mailing list => http://cool.haxx.se/mailman/listinfo/c-ares"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "c-ares"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "c-ares 1.7.1"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "c-ares"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.7.1"
+
+/* a suitable file/device to read random data from */
+#define RANDOM_FILE "/dev/urandom"
+
+/* Define to the type of arg 1 for recvfrom. */
+#define RECVFROM_TYPE_ARG1 int
+
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 void
+
+/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
+#define RECVFROM_TYPE_ARG2_IS_VOID 1
+
+/* Define to the type of arg 3 for recvfrom. */
+#define RECVFROM_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recvfrom. */
+#define RECVFROM_TYPE_ARG4 int
+
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+
+/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
+
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 socklen_t
+
+/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
+
+/* Define to the function return type for recvfrom. */
+#define RECVFROM_TYPE_RETV ssize_t
+
+/* Define to the type of arg 1 for recv. */
+#define RECV_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for recv. */
+#define RECV_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for recv. */
+#define RECV_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recv. */
+#define RECV_TYPE_ARG4 int
+
+/* Define to the function return type for recv. */
+#define RECV_TYPE_RETV ssize_t
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to the type qualifier of arg 2 for send. */
+#define SEND_QUAL_ARG2 const
+
+/* Define to the type of arg 1 for send. */
+#define SEND_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for send. */
+#define SEND_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for send. */
+#define SEND_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for send. */
+#define SEND_TYPE_ARG4 int
+
+/* Define to the function return type for send. */
+#define SEND_TYPE_RETV ssize_t
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 4
+
+/* The size of `struct in6_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN6_ADDR 16
+
+/* The size of `struct in_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN_ADDR 4
+
+/* The size of `time_t', as computed by sizeof. */
+#define SIZEOF_TIME_T 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to disable non-blocking sockets. */
+/* #undef USE_BLOCKING_SOCKETS */
+
+/* Version number of package */
+#define VERSION "1.7.1"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 if OS is AIX. */
+#ifndef _ALL_SOURCE
+/* # undef _ALL_SOURCE */
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Type to use in place of in_addr_t when system does not provide it. */
+/* #undef in_addr_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* the signed version of size_t */
+/* #undef ssize_t */
+
+#define HAVE_GETENV 1
diff --git a/src/c-ares/config_linux/ares_config.h b/src/c-ares/config_linux/ares_config.h
new file mode 100644
index 0000000000..8296bb7b17
--- /dev/null
+++ b/src/c-ares/config_linux/ares_config.h
@@ -0,0 +1,524 @@
+/* ares_config.h. Generated from ares_config.h.in by configure. */
+/* ares_config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* define this if ares is built for a big endian system */
+/* #undef ARES_BIG_ENDIAN */
+
+/* when building as static part of libcurl */
+/* #undef BUILDING_LIBCURL */
+
+/* Defined for build that exposes internal static functions for testing. */
+/* #undef CARES_EXPOSE_STATICS */
+
+/* Defined for build with symbol hiding. */
+#define CARES_SYMBOL_HIDING 1
+
+/* Definition to make a library symbol externally visible. */
+#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default")))
+
+/* Use resolver library to configure cares */
+/* #undef CARES_USE_LIBRESOLV */
+
+/* if a /etc/inet dir is being used */
+/* #undef ETC_INET */
+
+/* Define to the type of arg 2 for gethostname. */
+#define GETHOSTNAME_TYPE_ARG2 size_t
+
+/* Define to the type qualifier of arg 1 for getnameinfo. */
+#define GETNAMEINFO_QUAL_ARG1 const
+
+/* Define to the type of arg 1 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
+
+/* Define to the type of arg 2 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG2 socklen_t
+
+/* Define to the type of args 4 and 6 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG46 socklen_t
+
+/* Define to the type of arg 7 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG7 int
+
+/* Specifies the number of arguments to getservbyport_r */
+#define GETSERVBYPORT_R_ARGS 6
+
+/* Specifies the size of the buffer to pass to getservbyport_r */
+#define GETSERVBYPORT_R_BUFSIZE 4096
+
+/* Define to 1 if you have AF_INET6. */
+#define HAVE_AF_INET6 1
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 1
+
+/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */
+#define HAVE_ARPA_NAMESER_COMPAT_H 1
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Define to 1 if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the `bitncmp' function. */
+/* #undef HAVE_BITNCMP */
+
+/* Define to 1 if bool is an available type. */
+#define HAVE_BOOL_T 1
+
+/* Define to 1 if you have the clock_gettime function and monotonic timer. */
+#define HAVE_CLOCK_GETTIME_MONOTONIC 1
+
+/* Define to 1 if you have the closesocket function. */
+/* #undef HAVE_CLOSESOCKET */
+
+/* Define to 1 if you have the CloseSocket camel case function. */
+/* #undef HAVE_CLOSESOCKET_CAMEL */
+
+/* Define to 1 if you have the connect function. */
+#define HAVE_CONNECT 1
+
+/* define if the compiler supports basic C++11 syntax */
+#define HAVE_CXX11 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the fcntl function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have a working fcntl O_NONBLOCK function. */
+#define HAVE_FCNTL_O_NONBLOCK 1
+
+/* Define to 1 if you have the freeaddrinfo function. */
+#define HAVE_FREEADDRINFO 1
+
+/* Define to 1 if you have a working getaddrinfo function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if the getaddrinfo function is threadsafe. */
+#define HAVE_GETADDRINFO_THREADSAFE 1
+
+/* Define to 1 if you have the getenv function. */
+#define HAVE_GETENV 1
+
+/* Define to 1 if you have the gethostbyaddr function. */
+#define HAVE_GETHOSTBYADDR 1
+
+/* Define to 1 if you have the gethostbyname function. */
+#define HAVE_GETHOSTBYNAME 1
+
+/* Define to 1 if you have the gethostname function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the getnameinfo function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define to 1 if you have the getservbyport_r function. */
+#define HAVE_GETSERVBYPORT_R 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */
+/* #undef HAVE_INET_NET_PTON */
+
+/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have a IPv6 capable working inet_pton function. */
+#define HAVE_INET_PTON 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the ioctl function. */
+#define HAVE_IOCTL 1
+
+/* Define to 1 if you have the ioctlsocket function. */
+/* #undef HAVE_IOCTLSOCKET */
+
+/* Define to 1 if you have the IoctlSocket camel case function. */
+/* #undef HAVE_IOCTLSOCKET_CAMEL */
+
+/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function.
+ */
+/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
+
+/* Define to 1 if you have a working ioctlsocket FIONBIO function. */
+/* #undef HAVE_IOCTLSOCKET_FIONBIO */
+
+/* Define to 1 if you have a working ioctl FIONBIO function. */
+#define HAVE_IOCTL_FIONBIO 1
+
+/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */
+#define HAVE_IOCTL_SIOCGIFADDR 1
+
+/* Define to 1 if you have the `resolve' library (-lresolve). */
+/* #undef HAVE_LIBRESOLVE */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* if your compiler supports LL */
+#define HAVE_LL 1
+
+/* Define to 1 if the compiler supports the 'long long' data type. */
+#define HAVE_LONGLONG 1
+
+/* Define to 1 if you have the malloc.h header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the memory.h header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the MSG_NOSIGNAL flag. */
+#define HAVE_MSG_NOSIGNAL 1
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define to 1 if you have PF_INET6. */
+#define HAVE_PF_INET6 1
+
+/* Define to 1 if you have the recv function. */
+#define HAVE_RECV 1
+
+/* Define to 1 if you have the recvfrom function. */
+#define HAVE_RECVFROM 1
+
+/* Define to 1 if you have the send function. */
+#define HAVE_SEND 1
+
+/* Define to 1 if you have the setsockopt function. */
+#define HAVE_SETSOCKOPT 1
+
+/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */
+/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if sig_atomic_t is an available typedef. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if sig_atomic_t is already defined as volatile. */
+/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
+
+/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */
+#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if you have the socket function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the <socket.h> header file. */
+/* #undef HAVE_SOCKET_H */
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the strcmpi function. */
+/* #undef HAVE_STRCMPI */
+
+/* Define to 1 if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define to 1 if you have the stricmp function. */
+/* #undef HAVE_STRICMP */
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the strncmpi function. */
+/* #undef HAVE_STRNCMPI */
+
+/* Define to 1 if you have the strnicmp function. */
+/* #undef HAVE_STRNICMP */
+
+/* Define to 1 if you have the <stropts.h> header file. */
+#define HAVE_STROPTS_H 1
+
+/* Define to 1 if you have struct addrinfo. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define to 1 if you have struct in6_addr. */
+#define HAVE_STRUCT_IN6_ADDR 1
+
+/* Define to 1 if you have struct sockaddr_in6. */
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+
+/* if struct sockaddr_storage is defined */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if you have the timeval struct. */
+#define HAVE_STRUCT_TIMEVAL 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the windows.h header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the winsock2.h header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define to 1 if you have the winsock.h header file. */
+/* #undef HAVE_WINSOCK_H */
+
+/* Define to 1 if you have the writev function. */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the ws2tcpip.h header file. */
+/* #undef HAVE_WS2TCPIP_H */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Define to 1 if you need the malloc.h header file even with stdlib.h */
+/* #undef NEED_MALLOC_H */
+
+/* Define to 1 if you need the memory.h header file even with stdlib.h */
+/* #undef NEED_MEMORY_H */
+
+/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
+/* #undef NEED_REENTRANT */
+
+/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */
+/* #undef NEED_THREAD_SAFE */
+
+/* cpu-machine-OS */
+#define OS "x86_64-unknown-linux-gnu"
+
+/* Name of package */
+#define PACKAGE "c-ares"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "c-ares"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "c-ares -"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "c-ares"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "-"
+
+/* a suitable file/device to read random data from */
+#define RANDOM_FILE "/dev/urandom"
+
+/* Define to the type qualifier pointed by arg 5 for recvfrom. */
+#define RECVFROM_QUAL_ARG5
+
+/* Define to the type of arg 1 for recvfrom. */
+#define RECVFROM_TYPE_ARG1 int
+
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 void
+
+/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
+#define RECVFROM_TYPE_ARG2_IS_VOID 1
+
+/* Define to the type of arg 3 for recvfrom. */
+#define RECVFROM_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recvfrom. */
+#define RECVFROM_TYPE_ARG4 int
+
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+
+/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
+
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 socklen_t
+
+/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
+
+/* Define to the function return type for recvfrom. */
+#define RECVFROM_TYPE_RETV ssize_t
+
+/* Define to the type of arg 1 for recv. */
+#define RECV_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for recv. */
+#define RECV_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for recv. */
+#define RECV_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recv. */
+#define RECV_TYPE_ARG4 int
+
+/* Define to the function return type for recv. */
+#define RECV_TYPE_RETV ssize_t
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to the type qualifier of arg 2 for send. */
+#define SEND_QUAL_ARG2 const
+
+/* Define to the type of arg 1 for send. */
+#define SEND_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for send. */
+#define SEND_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for send. */
+#define SEND_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for send. */
+#define SEND_TYPE_ARG4 int
+
+/* Define to the function return type for send. */
+#define SEND_TYPE_RETV ssize_t
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 8
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 2
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
+
+/* The size of `struct in6_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN6_ADDR 16
+
+/* The size of `struct in_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN_ADDR 4
+
+/* The size of `time_t', as computed by sizeof. */
+#define SIZEOF_TIME_T 8
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to disable non-blocking sockets. */
+/* #undef USE_BLOCKING_SOCKETS */
+
+/* Version number of package */
+#define VERSION "-"
+
+/* Define to avoid automatic inclusion of winsock.h */
+/* #undef WIN32_LEAN_AND_MEAN */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 if OS is AIX. */
+#ifndef _ALL_SOURCE
+/* # undef _ALL_SOURCE */
+#endif
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Type to use in place of in_addr_t when system does not provide it. */
+/* #undef in_addr_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* the signed version of size_t */
+/* #undef ssize_t */
diff --git a/src/c-ares/gen_build_yaml.py b/src/c-ares/gen_build_yaml.py
new file mode 100755
index 0000000000..6cde19a915
--- /dev/null
+++ b/src/c-ares/gen_build_yaml.py
@@ -0,0 +1,150 @@
+#!/usr/bin/env python2.7
+
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import re
+import os
+import sys
+import yaml
+
+os.chdir(os.path.dirname(sys.argv[0])+'/../..')
+
+out = {}
+
+try:
+ def gen_ares_build(x):
+ subprocess.call("third_party/c-ares/buildconf", shell=True)
+ subprocess.call("third_party/c-ares/configure", shell=True)
+
+ def config_platform(x):
+ if 'linux' in sys.platform:
+ return 'src/c-ares/config_linux/ares_config.h'
+ if 'darwin' in sys.platform:
+ return 'src/c-ares/config_darwin/ares_config.h'
+ if not os.path.isfile('third_party/c-ares/ares_config.h'):
+ gen_ares_build(x)
+ return 'third_party/c-ares/ares_config.h'
+
+ def ares_build(x):
+ if os.path.isfile('src/c-ares/ares_build.h'):
+ return 'src/c-ares/ares_build.h'
+ if not os.path.isfile('third_party/c-ares/ares_build.h'):
+ gen_ares_build(x)
+ return 'third_party/c-ares/ares_build.h'
+
+
+
+ out['libs'] = [{
+ 'name': 'ares',
+ 'build': 'private',
+ 'language': 'c',
+ 'secure': 'no',
+ 'src': [
+ "third_party/c-ares/ares__close_sockets.c",
+ "third_party/c-ares/ares__get_hostent.c",
+ "third_party/c-ares/ares__read_line.c",
+ "third_party/c-ares/ares__timeval.c",
+ "third_party/c-ares/ares_cancel.c",
+ "third_party/c-ares/ares_create_query.c",
+ "third_party/c-ares/ares_data.c",
+ "third_party/c-ares/ares_destroy.c",
+ "third_party/c-ares/ares_expand_name.c",
+ "third_party/c-ares/ares_expand_string.c",
+ "third_party/c-ares/ares_fds.c",
+ "third_party/c-ares/ares_free_hostent.c",
+ "third_party/c-ares/ares_free_string.c",
+ "third_party/c-ares/ares_getenv.c",
+ "third_party/c-ares/ares_gethostbyaddr.c",
+ "third_party/c-ares/ares_gethostbyname.c",
+ "third_party/c-ares/ares_getnameinfo.c",
+ "third_party/c-ares/ares_getopt.c",
+ "third_party/c-ares/ares_getsock.c",
+ "third_party/c-ares/ares_init.c",
+ "third_party/c-ares/ares_library_init.c",
+ "third_party/c-ares/ares_llist.c",
+ "third_party/c-ares/ares_mkquery.c",
+ "third_party/c-ares/ares_nowarn.c",
+ "third_party/c-ares/ares_options.c",
+ "third_party/c-ares/ares_parse_a_reply.c",
+ "third_party/c-ares/ares_parse_aaaa_reply.c",
+ "third_party/c-ares/ares_parse_mx_reply.c",
+ "third_party/c-ares/ares_parse_naptr_reply.c",
+ "third_party/c-ares/ares_parse_ns_reply.c",
+ "third_party/c-ares/ares_parse_ptr_reply.c",
+ "third_party/c-ares/ares_parse_soa_reply.c",
+ "third_party/c-ares/ares_parse_srv_reply.c",
+ "third_party/c-ares/ares_parse_txt_reply.c",
+ "third_party/c-ares/ares_platform.c",
+ "third_party/c-ares/ares_process.c",
+ "third_party/c-ares/ares_query.c",
+ "third_party/c-ares/ares_search.c",
+ "third_party/c-ares/ares_send.c",
+ "third_party/c-ares/ares_strcasecmp.c",
+ "third_party/c-ares/ares_strdup.c",
+ "third_party/c-ares/ares_strerror.c",
+ "third_party/c-ares/ares_timeout.c",
+ "third_party/c-ares/ares_version.c",
+ "third_party/c-ares/ares_writev.c",
+ "third_party/c-ares/bitncmp.c",
+ "third_party/c-ares/inet_net_pton.c",
+ "third_party/c-ares/inet_ntop.c",
+ "third_party/c-ares/windows_port.c",
+ ],
+ 'headers': [
+ "third_party/c-ares/ares.h",
+ "third_party/c-ares/ares_data.h",
+ "third_party/c-ares/ares_dns.h",
+ "third_party/c-ares/ares_getenv.h",
+ "third_party/c-ares/ares_getopt.h",
+ "third_party/c-ares/ares_inet_net_pton.h",
+ "third_party/c-ares/ares_iphlpapi.h",
+ "third_party/c-ares/ares_ipv6.h",
+ "third_party/c-ares/ares_library_init.h",
+ "third_party/c-ares/ares_llist.h",
+ "third_party/c-ares/ares_nowarn.h",
+ "third_party/c-ares/ares_platform.h",
+ "third_party/c-ares/ares_private.h",
+ "third_party/c-ares/ares_rules.h",
+ "third_party/c-ares/ares_setup.h",
+ "third_party/c-ares/ares_strcasecmp.h",
+ "third_party/c-ares/ares_strdup.h",
+ "third_party/c-ares/ares_version.h",
+ "third_party/c-ares/bitncmp.h",
+ "third_party/c-ares/selectbridge.h",
+ "third_party/c-ares/setup_once.h",
+ "src/c-ares/ares_build.h",
+ "src/c-ares/config_linux/ares_config.h",
+ "src/c-ares/config_darwin/ares_config.h"
+ ],
+ }]
+except:
+ pass
+
+print yaml.dump(out)
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index f4b3d35dca..c5e57477e0 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -579,4 +579,53 @@ CORE_SOURCE_FILES = [
'third_party/zlib/trees.c',
'third_party/zlib/uncompr.c',
'third_party/zlib/zutil.c',
+ 'third_party/c-ares/ares__close_sockets.c',
+ 'third_party/c-ares/ares__get_hostent.c',
+ 'third_party/c-ares/ares__read_line.c',
+ 'third_party/c-ares/ares__timeval.c',
+ 'third_party/c-ares/ares_cancel.c',
+ 'third_party/c-ares/ares_create_query.c',
+ 'third_party/c-ares/ares_data.c',
+ 'third_party/c-ares/ares_destroy.c',
+ 'third_party/c-ares/ares_expand_name.c',
+ 'third_party/c-ares/ares_expand_string.c',
+ 'third_party/c-ares/ares_fds.c',
+ 'third_party/c-ares/ares_free_hostent.c',
+ 'third_party/c-ares/ares_free_string.c',
+ 'third_party/c-ares/ares_getenv.c',
+ 'third_party/c-ares/ares_gethostbyaddr.c',
+ 'third_party/c-ares/ares_gethostbyname.c',
+ 'third_party/c-ares/ares_getnameinfo.c',
+ 'third_party/c-ares/ares_getopt.c',
+ 'third_party/c-ares/ares_getsock.c',
+ 'third_party/c-ares/ares_init.c',
+ 'third_party/c-ares/ares_library_init.c',
+ 'third_party/c-ares/ares_llist.c',
+ 'third_party/c-ares/ares_mkquery.c',
+ 'third_party/c-ares/ares_nowarn.c',
+ 'third_party/c-ares/ares_options.c',
+ 'third_party/c-ares/ares_parse_a_reply.c',
+ 'third_party/c-ares/ares_parse_aaaa_reply.c',
+ 'third_party/c-ares/ares_parse_mx_reply.c',
+ 'third_party/c-ares/ares_parse_naptr_reply.c',
+ 'third_party/c-ares/ares_parse_ns_reply.c',
+ 'third_party/c-ares/ares_parse_ptr_reply.c',
+ 'third_party/c-ares/ares_parse_soa_reply.c',
+ 'third_party/c-ares/ares_parse_srv_reply.c',
+ 'third_party/c-ares/ares_parse_txt_reply.c',
+ 'third_party/c-ares/ares_platform.c',
+ 'third_party/c-ares/ares_process.c',
+ 'third_party/c-ares/ares_query.c',
+ 'third_party/c-ares/ares_search.c',
+ 'third_party/c-ares/ares_send.c',
+ 'third_party/c-ares/ares_strcasecmp.c',
+ 'third_party/c-ares/ares_strdup.c',
+ 'third_party/c-ares/ares_strerror.c',
+ 'third_party/c-ares/ares_timeout.c',
+ 'third_party/c-ares/ares_version.c',
+ 'third_party/c-ares/ares_writev.c',
+ 'third_party/c-ares/bitncmp.c',
+ 'third_party/c-ares/inet_net_pton.c',
+ 'third_party/c-ares/inet_ntop.c',
+ 'third_party/c-ares/windows_port.c',
]
diff --git a/tools/buildgen/generate_build_additions.sh b/tools/buildgen/generate_build_additions.sh
index 9a1a7a7249..1ee810679f 100644
--- a/tools/buildgen/generate_build_additions.sh
+++ b/tools/buildgen/generate_build_additions.sh
@@ -32,6 +32,7 @@ gen_build_yaml_dirs=" \
src/boringssl \
src/proto \
src/zlib \
+ src/c-ares \
test/core/bad_client \
test/core/bad_ssl \
test/core/end2end \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index bdbbaa7f77..a1ab743c69 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -5385,6 +5385,44 @@
"type": "lib"
},
{
+ "deps": [],
+ "headers": [
+ "src/c-ares/ares_build.h",
+ "src/c-ares/config_darwin/ares_config.h",
+ "src/c-ares/config_linux/ares_config.h",
+ "third_party/c-ares/ares.h",
+ "third_party/c-ares/ares_data.h",
+ "third_party/c-ares/ares_dns.h",
+ "third_party/c-ares/ares_getenv.h",
+ "third_party/c-ares/ares_getopt.h",
+ "third_party/c-ares/ares_inet_net_pton.h",
+ "third_party/c-ares/ares_iphlpapi.h",
+ "third_party/c-ares/ares_ipv6.h",
+ "third_party/c-ares/ares_library_init.h",
+ "third_party/c-ares/ares_llist.h",
+ "third_party/c-ares/ares_nowarn.h",
+ "third_party/c-ares/ares_platform.h",
+ "third_party/c-ares/ares_private.h",
+ "third_party/c-ares/ares_rules.h",
+ "third_party/c-ares/ares_setup.h",
+ "third_party/c-ares/ares_strcasecmp.h",
+ "third_party/c-ares/ares_strdup.h",
+ "third_party/c-ares/ares_version.h",
+ "third_party/c-ares/bitncmp.h",
+ "third_party/c-ares/selectbridge.h",
+ "third_party/c-ares/setup_once.h"
+ ],
+ "language": "c",
+ "name": "ares",
+ "src": [
+ "src/c-ares/ares_build.h",
+ "src/c-ares/config_darwin/ares_config.h",
+ "src/c-ares/config_linux/ares_config.h"
+ ],
+ "third_party": false,
+ "type": "lib"
+ },
+ {
"deps": [
"gpr",
"gpr_test_util",
diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln
index 84720914b0..9dc5fdf809 100644
--- a/vsprojects/grpc.sln
+++ b/vsprojects/grpc.sln
@@ -3,6 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ares", "vcxproj\.\ares\ares.vcxproj", "{1769D06D-F18C-B4C2-B019-31D7F83F3C9A}"
+ ProjectSection(myProperties) = preProject
+ lib = "True"
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "boringssl", "vcxproj\.\boringssl\boringssl.vcxproj", "{9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE}"
ProjectSection(myProperties) = preProject
lib = "True"
@@ -174,6 +179,22 @@ Global
Release-DLL|x64 = Release-DLL|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug|x64.ActiveCfg = Debug|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release|Win32.ActiveCfg = Release|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release|x64.ActiveCfg = Release|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug|Win32.Build.0 = Debug|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug|x64.Build.0 = Debug|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release|Win32.Build.0 = Release|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release|x64.Build.0 = Release|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Debug-DLL|x64.Build.0 = Debug|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release-DLL|Win32.Build.0 = Release|Win32
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release-DLL|x64.ActiveCfg = Release|x64
+ {1769D06D-F18C-B4C2-B019-31D7F83F3C9A}.Release-DLL|x64.Build.0 = Release|x64
{9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE}.Debug|Win32.ActiveCfg = Debug|Win32
{9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE}.Debug|x64.ActiveCfg = Debug|x64
{9FD9A3EF-C4A3-8390-D8F4-6F86C22A58CE}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/vcxproj/ares/ares.vcxproj b/vsprojects/vcxproj/ares/ares.vcxproj
new file mode 100644
index 0000000000..d6ad8edf28
--- /dev/null
+++ b/vsprojects/vcxproj/ares/ares.vcxproj
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{1769D06D-F18C-B4C2-B019-31D7F83F3C9A}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>ares</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <TargetName>ares</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_data.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_dns.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_inet_net_pton.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_iphlpapi.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_ipv6.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_private.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_rules.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_setup.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_version.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\selectbridge.h" />
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\setup_once.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\ares_build.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_linux\ares_config.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_darwin\ares_config.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__close_sockets.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__get_hostent.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__read_line.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__timeval.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_cancel.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_create_query.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_data.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_destroy.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_name.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_string.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_fds.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_hostent.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_string.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyaddr.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyname.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getnameinfo.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getsock.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_init.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_mkquery.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_options.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_a_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_aaaa_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_mx_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_naptr_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ns_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ptr_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_soa_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_srv_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_txt_reply.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_process.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_query.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_search.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_send.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strerror.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_timeout.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_version.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_writev.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_net_pton.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_ntop.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\windows_port.c">
+ </ClCompile>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/ares/ares.vcxproj.filters b/vsprojects/vcxproj/ares/ares.vcxproj.filters
new file mode 100644
index 0000000000..e935e211fe
--- /dev/null
+++ b/vsprojects/vcxproj/ares/ares.vcxproj.filters
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__close_sockets.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__get_hostent.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__read_line.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__timeval.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_cancel.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_create_query.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_data.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_destroy.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_name.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_string.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_fds.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_hostent.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_string.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyaddr.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyname.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getnameinfo.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getsock.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_init.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_mkquery.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_options.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_a_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_aaaa_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_mx_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_naptr_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ns_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ptr_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_soa_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_srv_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_txt_reply.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_process.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_query.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_search.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_send.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strerror.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_timeout.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_version.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_writev.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_net_pton.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_ntop.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\windows_port.c">
+ <Filter>third_party\c-ares</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_data.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_dns.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_inet_net_pton.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_iphlpapi.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_ipv6.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_private.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_rules.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_setup.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_version.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\selectbridge.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\setup_once.h">
+ <Filter>third_party\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\ares_build.h">
+ <Filter>src\c-ares</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_linux\ares_config.h">
+ <Filter>src\c-ares\config_linux</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_darwin\ares_config.h">
+ <Filter>src\c-ares\config_darwin</Filter>
+ </ClInclude>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="src">
+ <UniqueIdentifier>{b3522833-8ba3-b61e-a36a-609bbb19731b}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\c-ares">
+ <UniqueIdentifier>{46de445f-46a7-7f1c-6a6d-4f68280a93f1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\c-ares\config_darwin">
+ <UniqueIdentifier>{caa901d6-d1f9-5553-801b-76a36285e66d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\c-ares\config_linux">
+ <UniqueIdentifier>{d1c196f6-508c-7a30-7be3-8f38670adbf9}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="third_party">
+ <UniqueIdentifier>{6463a17d-379b-4a21-51a9-c729ed28c9c1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="third_party\c-ares">
+ <UniqueIdentifier>{ed241948-a4a1-89a0-0cc6-5a07e2c8ddec}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+