Migrate to the new c-ares dir
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 71232cc..b1f5fb0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4419,55 +4419,55 @@
 if (gRPC_BUILD_TESTS)
 
 add_library(ares
-  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
+  third_party/cares/cares/ares__close_sockets.c
+  third_party/cares/cares/ares__get_hostent.c
+  third_party/cares/cares/ares__read_line.c
+  third_party/cares/cares/ares__timeval.c
+  third_party/cares/cares/ares_cancel.c
+  third_party/cares/cares/ares_create_query.c
+  third_party/cares/cares/ares_data.c
+  third_party/cares/cares/ares_destroy.c
+  third_party/cares/cares/ares_expand_name.c
+  third_party/cares/cares/ares_expand_string.c
+  third_party/cares/cares/ares_fds.c
+  third_party/cares/cares/ares_free_hostent.c
+  third_party/cares/cares/ares_free_string.c
+  third_party/cares/cares/ares_getenv.c
+  third_party/cares/cares/ares_gethostbyaddr.c
+  third_party/cares/cares/ares_gethostbyname.c
+  third_party/cares/cares/ares_getnameinfo.c
+  third_party/cares/cares/ares_getopt.c
+  third_party/cares/cares/ares_getsock.c
+  third_party/cares/cares/ares_init.c
+  third_party/cares/cares/ares_library_init.c
+  third_party/cares/cares/ares_llist.c
+  third_party/cares/cares/ares_mkquery.c
+  third_party/cares/cares/ares_nowarn.c
+  third_party/cares/cares/ares_options.c
+  third_party/cares/cares/ares_parse_a_reply.c
+  third_party/cares/cares/ares_parse_aaaa_reply.c
+  third_party/cares/cares/ares_parse_mx_reply.c
+  third_party/cares/cares/ares_parse_naptr_reply.c
+  third_party/cares/cares/ares_parse_ns_reply.c
+  third_party/cares/cares/ares_parse_ptr_reply.c
+  third_party/cares/cares/ares_parse_soa_reply.c
+  third_party/cares/cares/ares_parse_srv_reply.c
+  third_party/cares/cares/ares_parse_txt_reply.c
+  third_party/cares/cares/ares_platform.c
+  third_party/cares/cares/ares_process.c
+  third_party/cares/cares/ares_query.c
+  third_party/cares/cares/ares_search.c
+  third_party/cares/cares/ares_send.c
+  third_party/cares/cares/ares_strcasecmp.c
+  third_party/cares/cares/ares_strdup.c
+  third_party/cares/cares/ares_strerror.c
+  third_party/cares/cares/ares_timeout.c
+  third_party/cares/cares/ares_version.c
+  third_party/cares/cares/ares_writev.c
+  third_party/cares/cares/bitncmp.c
+  third_party/cares/cares/inet_net_pton.c
+  third_party/cares/cares/inet_ntop.c
+  third_party/cares/cares/windows_port.c
 )
 
 
diff --git a/Makefile b/Makefile
index b640cda..343e46d 100644
--- a/Makefile
+++ b/Makefile
@@ -495,7 +495,7 @@
 SHARED_VERSION_CPP = -1
 SHARED_VERSION_CSHARP = -1
 else ifeq ($(SYSTEM),Darwin)
-EXECUTABLE_SUFFIX = 
+EXECUTABLE_SUFFIX =
 SHARED_EXT_CORE = dylib
 SHARED_EXT_CPP = dylib
 SHARED_EXT_CSHARP = dylib
@@ -504,7 +504,7 @@
 SHARED_VERSION_CPP =
 SHARED_VERSION_CSHARP =
 else
-EXECUTABLE_SUFFIX = 
+EXECUTABLE_SUFFIX =
 SHARED_EXT_CORE = so.$(CORE_VERSION)
 SHARED_EXT_CPP = so.$(CPP_VERSION)
 SHARED_EXT_CSHARP = so.$(CSHARP_VERSION)
@@ -648,7 +648,7 @@
 HAS_EMBEDDED_PROTOBUF = true
 endif
 
-ifeq ($(wildcard third_party/c-ares/ares.h),)
+ifeq ($(wildcard third_party/cares/cares/ares.h),)
 HAS_EMBEDDED_CARES = false
 else
 HAS_EMBEDDED_CARES = true
@@ -703,7 +703,7 @@
 CARES_DEP = $(LIBDIR)/$(CONFIG)/libares.a
 CARES_MERGE_OBJS = $(LIBARES_OBJS)
 CARES_MERGE_LIBS = $(LIBDIR)/$(CONFIG)/libares.a
-CPPFLAGS := -Ithird_party/c-ares -Isrc/c-ares $(CPPFLAGS)
+CPPFLAGS := -Ithird_party/cares -Ithird_party/cares/cares $(CPPFLAGS)
 LDFLAGS := -L$(LIBDIR)/$(CONFIG)/c-ares $(LDFLAGS)
 else
 ifeq ($(HAS_PKG_CONFIG),true)
@@ -7238,61 +7238,61 @@
 
 
 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 \
+    third_party/cares/cares/ares__close_sockets.c \
+    third_party/cares/cares/ares__get_hostent.c \
+    third_party/cares/cares/ares__read_line.c \
+    third_party/cares/cares/ares__timeval.c \
+    third_party/cares/cares/ares_cancel.c \
+    third_party/cares/cares/ares_create_query.c \
+    third_party/cares/cares/ares_data.c \
+    third_party/cares/cares/ares_destroy.c \
+    third_party/cares/cares/ares_expand_name.c \
+    third_party/cares/cares/ares_expand_string.c \
+    third_party/cares/cares/ares_fds.c \
+    third_party/cares/cares/ares_free_hostent.c \
+    third_party/cares/cares/ares_free_string.c \
+    third_party/cares/cares/ares_getenv.c \
+    third_party/cares/cares/ares_gethostbyaddr.c \
+    third_party/cares/cares/ares_gethostbyname.c \
+    third_party/cares/cares/ares_getnameinfo.c \
+    third_party/cares/cares/ares_getopt.c \
+    third_party/cares/cares/ares_getsock.c \
+    third_party/cares/cares/ares_init.c \
+    third_party/cares/cares/ares_library_init.c \
+    third_party/cares/cares/ares_llist.c \
+    third_party/cares/cares/ares_mkquery.c \
+    third_party/cares/cares/ares_nowarn.c \
+    third_party/cares/cares/ares_options.c \
+    third_party/cares/cares/ares_parse_a_reply.c \
+    third_party/cares/cares/ares_parse_aaaa_reply.c \
+    third_party/cares/cares/ares_parse_mx_reply.c \
+    third_party/cares/cares/ares_parse_naptr_reply.c \
+    third_party/cares/cares/ares_parse_ns_reply.c \
+    third_party/cares/cares/ares_parse_ptr_reply.c \
+    third_party/cares/cares/ares_parse_soa_reply.c \
+    third_party/cares/cares/ares_parse_srv_reply.c \
+    third_party/cares/cares/ares_parse_txt_reply.c \
+    third_party/cares/cares/ares_platform.c \
+    third_party/cares/cares/ares_process.c \
+    third_party/cares/cares/ares_query.c \
+    third_party/cares/cares/ares_search.c \
+    third_party/cares/cares/ares_send.c \
+    third_party/cares/cares/ares_strcasecmp.c \
+    third_party/cares/cares/ares_strdup.c \
+    third_party/cares/cares/ares_strerror.c \
+    third_party/cares/cares/ares_timeout.c \
+    third_party/cares/cares/ares_version.c \
+    third_party/cares/cares/ares_writev.c \
+    third_party/cares/cares/bitncmp.c \
+    third_party/cares/cares/inet_net_pton.c \
+    third_party/cares/cares/inet_ntop.c \
+    third_party/cares/cares/windows_port.c \
 
 PUBLIC_HEADERS_C += \
 
 LIBARES_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBARES_SRC))))
 
-$(LIBARES_OBJS): CPPFLAGS += -Ithird_party/c-ares -Isrc/c-ares $(if $(subst Linux,,$(SYSTEM)),,-Isrc/c-ares/config_linux) $(if $(subst Darwin,,$(SYSTEM)),,-Isrc/c-ares/config_darwin) -fvisibility=hidden -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
+$(LIBARES_OBJS): CPPFLAGS += -Ithird_party/cares -Ithird_party/cares/cares $(if $(subst Linux,,$(SYSTEM)),,-Ithird_party/cares/config_linux) $(if $(subst Darwin,,$(SYSTEM)),,-Ithird_party/cares/config_darwin) -fvisibility=hidden -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
 $(LIBARES_OBJS): CFLAGS += -Wno-sign-conversion -Wno-invalid-source-encoding
 
 $(LIBDIR)/$(CONFIG)/libares.a: $(ZLIB_DEP)  $(LIBARES_OBJS) 
diff --git a/binding.gyp b/binding.gyp
index b55c0ca..96fd178 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -100,7 +100,7 @@
       ['OS == "win"', {
         "include_dirs": [
           "third_party/zlib",
-          "third_party/c-ares"
+          "third_party/cares/cares"
         ],
         "defines": [
           '_WIN32_WINNT=0x0600',
diff --git a/build.yaml b/build.yaml
index 7c578d2..6483ad1 100644
--- a/build.yaml
+++ b/build.yaml
@@ -3879,8 +3879,8 @@
 defaults:
   ares:
     CFLAGS: -Wno-sign-conversion -Wno-invalid-source-encoding
-    CPPFLAGS: -Ithird_party/c-ares -Isrc/c-ares $(if $(subst Linux,,$(SYSTEM)),,-Isrc/c-ares/config_linux)
-      $(if $(subst Darwin,,$(SYSTEM)),,-Isrc/c-ares/config_darwin) -fvisibility=hidden
+    CPPFLAGS: -Ithird_party/cares -Ithird_party/cares/cares $(if $(subst Linux,,$(SYSTEM)),,-Ithird_party/cares/config_linux)
+      $(if $(subst Darwin,,$(SYSTEM)),,-Ithird_party/cares/config_darwin) -fvisibility=hidden
       -D_GNU_SOURCE -DWIN32_LEAN_AND_MEAN -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DHAVE_CONFIG_H
   benchmark:
     CPPFLAGS: -Ithird_party/benchmark/include -DHAVE_POSIX_REGEX
diff --git a/grpc.gemspec b/grpc.gemspec
index 317ea79..9cb73e5 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -1003,77 +1003,77 @@
   s.files += %w( third_party/zlib/trees.c )
   s.files += %w( third_party/zlib/uncompr.c )
   s.files += %w( third_party/zlib/zutil.c )
-  s.files += %w( third_party/c-ares/ares.h )
-  s.files += %w( third_party/c-ares/ares_data.h )
-  s.files += %w( third_party/c-ares/ares_dns.h )
-  s.files += %w( third_party/c-ares/ares_getenv.h )
-  s.files += %w( third_party/c-ares/ares_getopt.h )
-  s.files += %w( third_party/c-ares/ares_inet_net_pton.h )
-  s.files += %w( third_party/c-ares/ares_iphlpapi.h )
-  s.files += %w( third_party/c-ares/ares_ipv6.h )
-  s.files += %w( third_party/c-ares/ares_library_init.h )
-  s.files += %w( third_party/c-ares/ares_llist.h )
-  s.files += %w( third_party/c-ares/ares_nowarn.h )
-  s.files += %w( third_party/c-ares/ares_platform.h )
-  s.files += %w( third_party/c-ares/ares_private.h )
-  s.files += %w( third_party/c-ares/ares_rules.h )
-  s.files += %w( third_party/c-ares/ares_setup.h )
-  s.files += %w( third_party/c-ares/ares_strcasecmp.h )
-  s.files += %w( third_party/c-ares/ares_strdup.h )
-  s.files += %w( third_party/c-ares/ares_version.h )
-  s.files += %w( third_party/c-ares/bitncmp.h )
-  s.files += %w( third_party/c-ares/config-win32.h )
-  s.files += %w( third_party/c-ares/setup_once.h )
-  s.files += %w( src/c-ares/ares_build.h )
-  s.files += %w( src/c-ares/config_linux/ares_config.h )
-  s.files += %w( src/c-ares/config_darwin/ares_config.h )
-  s.files += %w( third_party/c-ares/ares__close_sockets.c )
-  s.files += %w( third_party/c-ares/ares__get_hostent.c )
-  s.files += %w( third_party/c-ares/ares__read_line.c )
-  s.files += %w( third_party/c-ares/ares__timeval.c )
-  s.files += %w( third_party/c-ares/ares_cancel.c )
-  s.files += %w( third_party/c-ares/ares_create_query.c )
-  s.files += %w( third_party/c-ares/ares_data.c )
-  s.files += %w( third_party/c-ares/ares_destroy.c )
-  s.files += %w( third_party/c-ares/ares_expand_name.c )
-  s.files += %w( third_party/c-ares/ares_expand_string.c )
-  s.files += %w( third_party/c-ares/ares_fds.c )
-  s.files += %w( third_party/c-ares/ares_free_hostent.c )
-  s.files += %w( third_party/c-ares/ares_free_string.c )
-  s.files += %w( third_party/c-ares/ares_getenv.c )
-  s.files += %w( third_party/c-ares/ares_gethostbyaddr.c )
-  s.files += %w( third_party/c-ares/ares_gethostbyname.c )
-  s.files += %w( third_party/c-ares/ares_getnameinfo.c )
-  s.files += %w( third_party/c-ares/ares_getopt.c )
-  s.files += %w( third_party/c-ares/ares_getsock.c )
-  s.files += %w( third_party/c-ares/ares_init.c )
-  s.files += %w( third_party/c-ares/ares_library_init.c )
-  s.files += %w( third_party/c-ares/ares_llist.c )
-  s.files += %w( third_party/c-ares/ares_mkquery.c )
-  s.files += %w( third_party/c-ares/ares_nowarn.c )
-  s.files += %w( third_party/c-ares/ares_options.c )
-  s.files += %w( third_party/c-ares/ares_parse_a_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_aaaa_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_mx_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_naptr_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_ns_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_ptr_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_soa_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_srv_reply.c )
-  s.files += %w( third_party/c-ares/ares_parse_txt_reply.c )
-  s.files += %w( third_party/c-ares/ares_platform.c )
-  s.files += %w( third_party/c-ares/ares_process.c )
-  s.files += %w( third_party/c-ares/ares_query.c )
-  s.files += %w( third_party/c-ares/ares_search.c )
-  s.files += %w( third_party/c-ares/ares_send.c )
-  s.files += %w( third_party/c-ares/ares_strcasecmp.c )
-  s.files += %w( third_party/c-ares/ares_strdup.c )
-  s.files += %w( third_party/c-ares/ares_strerror.c )
-  s.files += %w( third_party/c-ares/ares_timeout.c )
-  s.files += %w( third_party/c-ares/ares_version.c )
-  s.files += %w( third_party/c-ares/ares_writev.c )
-  s.files += %w( third_party/c-ares/bitncmp.c )
-  s.files += %w( third_party/c-ares/inet_net_pton.c )
-  s.files += %w( third_party/c-ares/inet_ntop.c )
-  s.files += %w( third_party/c-ares/windows_port.c )
+  s.files += %w( third_party/cares/cares/ares.h )
+  s.files += %w( third_party/cares/cares/ares_data.h )
+  s.files += %w( third_party/cares/cares/ares_dns.h )
+  s.files += %w( third_party/cares/cares/ares_getenv.h )
+  s.files += %w( third_party/cares/cares/ares_getopt.h )
+  s.files += %w( third_party/cares/cares/ares_inet_net_pton.h )
+  s.files += %w( third_party/cares/cares/ares_iphlpapi.h )
+  s.files += %w( third_party/cares/cares/ares_ipv6.h )
+  s.files += %w( third_party/cares/cares/ares_library_init.h )
+  s.files += %w( third_party/cares/cares/ares_llist.h )
+  s.files += %w( third_party/cares/cares/ares_nowarn.h )
+  s.files += %w( third_party/cares/cares/ares_platform.h )
+  s.files += %w( third_party/cares/cares/ares_private.h )
+  s.files += %w( third_party/cares/cares/ares_rules.h )
+  s.files += %w( third_party/cares/cares/ares_setup.h )
+  s.files += %w( third_party/cares/cares/ares_strcasecmp.h )
+  s.files += %w( third_party/cares/cares/ares_strdup.h )
+  s.files += %w( third_party/cares/cares/ares_version.h )
+  s.files += %w( third_party/cares/cares/bitncmp.h )
+  s.files += %w( third_party/cares/cares/config-win32.h )
+  s.files += %w( third_party/cares/cares/setup_once.h )
+  s.files += %w( third_party/cares/ares_build.h )
+  s.files += %w( third_party/cares/config_linux/ares_config.h )
+  s.files += %w( third_party/cares/config_darwin/ares_config.h )
+  s.files += %w( third_party/cares/cares/ares__close_sockets.c )
+  s.files += %w( third_party/cares/cares/ares__get_hostent.c )
+  s.files += %w( third_party/cares/cares/ares__read_line.c )
+  s.files += %w( third_party/cares/cares/ares__timeval.c )
+  s.files += %w( third_party/cares/cares/ares_cancel.c )
+  s.files += %w( third_party/cares/cares/ares_create_query.c )
+  s.files += %w( third_party/cares/cares/ares_data.c )
+  s.files += %w( third_party/cares/cares/ares_destroy.c )
+  s.files += %w( third_party/cares/cares/ares_expand_name.c )
+  s.files += %w( third_party/cares/cares/ares_expand_string.c )
+  s.files += %w( third_party/cares/cares/ares_fds.c )
+  s.files += %w( third_party/cares/cares/ares_free_hostent.c )
+  s.files += %w( third_party/cares/cares/ares_free_string.c )
+  s.files += %w( third_party/cares/cares/ares_getenv.c )
+  s.files += %w( third_party/cares/cares/ares_gethostbyaddr.c )
+  s.files += %w( third_party/cares/cares/ares_gethostbyname.c )
+  s.files += %w( third_party/cares/cares/ares_getnameinfo.c )
+  s.files += %w( third_party/cares/cares/ares_getopt.c )
+  s.files += %w( third_party/cares/cares/ares_getsock.c )
+  s.files += %w( third_party/cares/cares/ares_init.c )
+  s.files += %w( third_party/cares/cares/ares_library_init.c )
+  s.files += %w( third_party/cares/cares/ares_llist.c )
+  s.files += %w( third_party/cares/cares/ares_mkquery.c )
+  s.files += %w( third_party/cares/cares/ares_nowarn.c )
+  s.files += %w( third_party/cares/cares/ares_options.c )
+  s.files += %w( third_party/cares/cares/ares_parse_a_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_aaaa_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_mx_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_naptr_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_ns_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_ptr_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_soa_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_srv_reply.c )
+  s.files += %w( third_party/cares/cares/ares_parse_txt_reply.c )
+  s.files += %w( third_party/cares/cares/ares_platform.c )
+  s.files += %w( third_party/cares/cares/ares_process.c )
+  s.files += %w( third_party/cares/cares/ares_query.c )
+  s.files += %w( third_party/cares/cares/ares_search.c )
+  s.files += %w( third_party/cares/cares/ares_send.c )
+  s.files += %w( third_party/cares/cares/ares_strcasecmp.c )
+  s.files += %w( third_party/cares/cares/ares_strdup.c )
+  s.files += %w( third_party/cares/cares/ares_strerror.c )
+  s.files += %w( third_party/cares/cares/ares_timeout.c )
+  s.files += %w( third_party/cares/cares/ares_version.c )
+  s.files += %w( third_party/cares/cares/ares_writev.c )
+  s.files += %w( third_party/cares/cares/bitncmp.c )
+  s.files += %w( third_party/cares/cares/inet_net_pton.c )
+  s.files += %w( third_party/cares/cares/inet_ntop.c )
+  s.files += %w( third_party/cares/cares/windows_port.c )
 end
diff --git a/setup.py b/setup.py
index db3d7b1..a505fef 100644
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 """A setup module for the GRPC Python package."""
-from distutils import cygwinccompiler
+
 from distutils import extension as _extension
 from distutils import util
 import os
@@ -53,24 +53,26 @@
 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'),)
+    os.path.join('third_party', 'cares'),
+    os.path.join('third_party', 'cares', 'cares'),)
 if 'linux' in sys.platform:
-  CARES_INCLUDE += (os.path.join('src', 'c-ares', 'config_linux'),)
+  CARES_INCLUDE += (os.path.join('third_party', 'cares', 'config_linux'),)
 if 'darwin' in sys.platform:
-  CARES_INCLUDE += (os.path.join('src', 'c-ares', 'config_darwin'),)
-README = os.path.join(PYTHON_STEM, 'README.rst')
+  CARES_INCLUDE += (os.path.join('third_party', 'cares', '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__)))
 sys.path.insert(0, os.path.abspath(PYTHON_STEM))
 
 # Break import-style to ensure we can actually find our in-repo dependencies.
-import _spawn_patch
+import _unixccompiler_patch
 import commands
 import grpc_core_dependencies
 import grpc_version
 
-_spawn_patch.monkeypatch_spawn()
+if 'win32' in sys.platform:
+  _unixccompiler_patch.monkeypatch_unix_compiler()
+
 
 LICENSE = '3-clause BSD'
 
@@ -86,11 +88,6 @@
 ENABLE_CYTHON_TRACING = os.environ.get(
     'GRPC_PYTHON_ENABLE_CYTHON_TRACING', False)
 
-# Environment variable specifying whether or not there's interest in setting up
-# documentation building.
-ENABLE_DOCUMENTATION_BUILD = os.environ.get(
-    'GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD', False)
-
 # There are some situations (like on Windows) where CC, CFLAGS, and LDFLAGS are
 # entirely ignored/dropped/forgotten by distutils and its Cygwin/MinGW support.
 # We use these environment variables to thus get around that without locking
@@ -101,8 +98,8 @@
 EXTRA_ENV_COMPILE_ARGS = os.environ.get('GRPC_PYTHON_CFLAGS', None)
 EXTRA_ENV_LINK_ARGS = os.environ.get('GRPC_PYTHON_LDFLAGS', None)
 if EXTRA_ENV_COMPILE_ARGS is None:
-  EXTRA_ENV_COMPILE_ARGS = ''
-  if 'win32' in sys.platform and sys.version_info < (3, 5):
+  EXTRA_ENV_COMPILE_ARGS = '-fno-wrapv'
+  if 'win32' in sys.platform:
     # We use define flags here and don't directly add to DEFINE_MACROS below to
     # ensure that the expert user/builder has a way of turning it off (via the
     # envvars) without adding yet more GRPC-specific envvars.
@@ -112,21 +109,21 @@
     else:
       EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64'
   elif "linux" in sys.platform or "darwin" in sys.platform:
-    EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv'
+    EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden'
 if EXTRA_ENV_LINK_ARGS is None:
-  EXTRA_ENV_LINK_ARGS = ''
-  if "linux" in sys.platform or "darwin" in sys.platform:
-    EXTRA_ENV_LINK_ARGS += ' -lpthread'
-  elif "win32" in sys.platform and sys.version_info < (3, 5):
-    msvcr = cygwinccompiler.get_msvcr()[0]
+  EXTRA_ENV_LINK_ARGS = '-lpthread'
+  if 'win32' in sys.platform:
+    # TODO(atash) check if this is actually safe to just import and call on
+    # non-Windows (to avoid breaking import style)
+    from distutils.cygwinccompiler import get_msvcr
+    msvcr = get_msvcr()[0]
     # TODO(atash) sift through the GCC specs to see if libstdc++ can have any
     # influence on the linkage outcome on MinGW for non-C++ programs.
     EXTRA_ENV_LINK_ARGS += (
         ' -static-libgcc -static-libstdc++ -mcrtdll={msvcr} '
         '-static'.format(msvcr=msvcr))
-  if "linux" in sys.platform:
+  elif "linux" in sys.platform:
     EXTRA_ENV_LINK_ARGS += ' -Wl,-wrap,memcpy'
-
 EXTRA_COMPILE_ARGS = shlex.split(EXTRA_ENV_COMPILE_ARGS)
 EXTRA_LINK_ARGS = shlex.split(EXTRA_ENV_LINK_ARGS)
 
@@ -148,19 +145,16 @@
 if not "win32" in sys.platform:
   EXTENSION_LIBRARIES += ('m',)
 if "win32" in sys.platform:
-  EXTENSION_LIBRARIES += ('advapi32', 'ws2_32',)
+  EXTENSION_LIBRARIES += ('ws2_32',)
 
 DEFINE_MACROS = (
     ('OPENSSL_NO_ASM', 1), ('_WIN32_WINNT', 0x600),
     ('GPR_BACKWARDS_COMPATIBILITY_MODE', 1),)
 if "win32" in sys.platform:
-  DEFINE_MACROS += (('WIN32_LEAN_AND_MEAN', 1), ('CARES_STATICLIB', 1),)
+  DEFINE_MACROS += (('OPENSSL_WINDOWS', 1), ('WIN32_LEAN_AND_MEAN', 1),
+                    ('CARES_STATICLIB', 1),)
   if '64bit' in platform.architecture()[0]:
     DEFINE_MACROS += (('MS_WIN64', 1),)
-  elif sys.version_info >= (3, 5):
-    # For some reason, this is needed to get access to inet_pton/inet_ntop
-    # on msvc, but only for 32 bits
-    DEFINE_MACROS += (('NTDDI_VERSION', 0x06000000),)
 else:
   DEFINE_MACROS += (('HAVE_CONFIG_H', 1),)
 
@@ -171,6 +165,7 @@
   pymodinit = '__attribute__((visibility ("default"))) {}'.format(pymodinit_type)
   DEFINE_MACROS += (('PyMODINIT_FUNC', pymodinit),)
 
+
 # By default, Python3 distutils enforces compatibility of
 # c plugins (.so files) with the OSX version Python3 was built with.
 # For Python3.4, this is OSX 10.6, but we need Thread Local Support (__thread)
@@ -213,32 +208,26 @@
 INSTALL_REQUIRES = (
     'six>=1.5.2',
     'enum34>=1.0.4',
+    'futures>=2.2.0',
     # TODO(atash): eventually split the grpcio package into a metapackage
     # depending on protobuf and the runtime component (independent of protobuf)
     'protobuf>=3.0.0',
 )
 
-if not PY3:
-  INSTALL_REQUIRES += ('futures>=2.2.0',)
-
 SETUP_REQUIRES = INSTALL_REQUIRES + (
     'sphinx>=1.3',
     'sphinx_rtd_theme>=0.1.8',
     'six>=1.10',
-  ) if ENABLE_DOCUMENTATION_BUILD else ()
-
-try:
-  import Cython
-except ImportError:
-  if BUILD_WITH_CYTHON:
-    sys.stderr.write(
-      "You requested a Cython build via GRPC_PYTHON_BUILD_WITH_CYTHON, "
-      "but do not have Cython installed. We won't stop you from using "
-      "other commands, but the extension files will fail to build.\n")
-  elif need_cython:
-    sys.stderr.write(
-        'We could not find Cython. Setup may take 10-20 minutes.\n')
-    SETUP_REQUIRES += ('cython>=0.23',)
+)
+if BUILD_WITH_CYTHON:
+  sys.stderr.write(
+    "You requested a Cython build via GRPC_PYTHON_BUILD_WITH_CYTHON, "
+    "but do not have Cython installed. We won't stop you from using "
+    "other commands, but the extension files will fail to build.\n")
+elif need_cython:
+  sys.stderr.write(
+      'We could not find Cython. Setup may take 10-20 minutes.\n')
+  SETUP_REQUIRES += ('cython>=0.23',)
 
 COMMAND_CLASS = {
     'doc': commands.SphinxDocumentation,
@@ -272,7 +261,6 @@
   name='grpcio',
   version=grpc_version.VERSION,
   license=LICENSE,
-  long_description=open(README).read(),
   ext_modules=CYTHON_EXTENSION_MODULES,
   packages=list(PACKAGES),
   package_dir=PACKAGE_DIRECTORIES,
diff --git a/src/c-ares/gen_build_yaml.py b/src/c-ares/gen_build_yaml.py
index 28ef736..b2ae971 100755
--- a/src/c-ares/gen_build_yaml.py
+++ b/src/c-ares/gen_build_yaml.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python2.7
 
-# Copyright 2016, Google Inc.
+# Copyright 2015, Google Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -40,24 +40,24 @@
 
 try:
   def gen_ares_build(x):
-    subprocess.call("third_party/c-ares/buildconf", shell=True)
-    subprocess.call("third_party/c-ares/configure", shell=True)
+    subprocess.call("third_party/cares/cares/buildconf", shell=True)
+    subprocess.call("third_party/cares/cares/configure", shell=True)
 
   def config_platform(x):
     if 'linux' in sys.platform:
-      return 'src/c-ares/config_linux/ares_config.h'
+      return 'src/cares/cares/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'):
+      return 'src/cares/cares/config_darwin/ares_config.h'
+    if not os.path.isfile('third_party/cares/cares/ares_config.h'):
       gen_ares_build(x)
-    return 'third_party/c-ares/ares_config.h'
+    return 'third_party/cares/cares/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'):
+    if os.path.isfile('src/cares/cares/ares_build.h'):
+      return 'src/cares/cares/ares_build.h'
+    if not os.path.isfile('third_party/cares/cares/ares_build.h'):
       gen_ares_build(x)
-    return 'third_party/c-ares/ares_build.h'
+    return 'third_party/cares/cares/ares_build.h'
 
   out['libs'] = [{
       'name': 'ares',
@@ -66,81 +66,81 @@
       '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",
+        "third_party/cares/cares/ares__close_sockets.c",
+        "third_party/cares/cares/ares__get_hostent.c",
+        "third_party/cares/cares/ares__read_line.c",
+        "third_party/cares/cares/ares__timeval.c",
+        "third_party/cares/cares/ares_cancel.c",
+        "third_party/cares/cares/ares_create_query.c",
+        "third_party/cares/cares/ares_data.c",
+        "third_party/cares/cares/ares_destroy.c",
+        "third_party/cares/cares/ares_expand_name.c",
+        "third_party/cares/cares/ares_expand_string.c",
+        "third_party/cares/cares/ares_fds.c",
+        "third_party/cares/cares/ares_free_hostent.c",
+        "third_party/cares/cares/ares_free_string.c",
+        "third_party/cares/cares/ares_getenv.c",
+        "third_party/cares/cares/ares_gethostbyaddr.c",
+        "third_party/cares/cares/ares_gethostbyname.c",
+        "third_party/cares/cares/ares_getnameinfo.c",
+        "third_party/cares/cares/ares_getopt.c",
+        "third_party/cares/cares/ares_getsock.c",
+        "third_party/cares/cares/ares_init.c",
+        "third_party/cares/cares/ares_library_init.c",
+        "third_party/cares/cares/ares_llist.c",
+        "third_party/cares/cares/ares_mkquery.c",
+        "third_party/cares/cares/ares_nowarn.c",
+        "third_party/cares/cares/ares_options.c",
+        "third_party/cares/cares/ares_parse_a_reply.c",
+        "third_party/cares/cares/ares_parse_aaaa_reply.c",
+        "third_party/cares/cares/ares_parse_mx_reply.c",
+        "third_party/cares/cares/ares_parse_naptr_reply.c",
+        "third_party/cares/cares/ares_parse_ns_reply.c",
+        "third_party/cares/cares/ares_parse_ptr_reply.c",
+        "third_party/cares/cares/ares_parse_soa_reply.c",
+        "third_party/cares/cares/ares_parse_srv_reply.c",
+        "third_party/cares/cares/ares_parse_txt_reply.c",
+        "third_party/cares/cares/ares_platform.c",
+        "third_party/cares/cares/ares_process.c",
+        "third_party/cares/cares/ares_query.c",
+        "third_party/cares/cares/ares_search.c",
+        "third_party/cares/cares/ares_send.c",
+        "third_party/cares/cares/ares_strcasecmp.c",
+        "third_party/cares/cares/ares_strdup.c",
+        "third_party/cares/cares/ares_strerror.c",
+        "third_party/cares/cares/ares_timeout.c",
+        "third_party/cares/cares/ares_version.c",
+        "third_party/cares/cares/ares_writev.c",
+        "third_party/cares/cares/bitncmp.c",
+        "third_party/cares/cares/inet_net_pton.c",
+        "third_party/cares/cares/inet_ntop.c",
+        "third_party/cares/cares/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/config-win32.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"
+        "third_party/cares/cares/ares.h",
+        "third_party/cares/cares/ares_data.h",
+        "third_party/cares/cares/ares_dns.h",
+        "third_party/cares/cares/ares_getenv.h",
+        "third_party/cares/cares/ares_getopt.h",
+        "third_party/cares/cares/ares_inet_net_pton.h",
+        "third_party/cares/cares/ares_iphlpapi.h",
+        "third_party/cares/cares/ares_ipv6.h",
+        "third_party/cares/cares/ares_library_init.h",
+        "third_party/cares/cares/ares_llist.h",
+        "third_party/cares/cares/ares_nowarn.h",
+        "third_party/cares/cares/ares_platform.h",
+        "third_party/cares/cares/ares_private.h",
+        "third_party/cares/cares/ares_rules.h",
+        "third_party/cares/cares/ares_setup.h",
+        "third_party/cares/cares/ares_strcasecmp.h",
+        "third_party/cares/cares/ares_strdup.h",
+        "third_party/cares/cares/ares_version.h",
+        "third_party/cares/cares/bitncmp.h",
+        "third_party/cares/cares/config-win32.h",
+        "third_party/cares/cares/setup_once.h",
+        "third_party/cares/ares_build.h",
+        "third_party/cares/config_linux/ares_config.h",
+        "third_party/cares/config_darwin/ares_config.h"
     ],
   }]
 except:
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index 72d8fe0..786bdfe 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -608,53 +608,53 @@
   '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',
+  'third_party/cares/cares/ares__close_sockets.c',
+  'third_party/cares/cares/ares__get_hostent.c',
+  'third_party/cares/cares/ares__read_line.c',
+  'third_party/cares/cares/ares__timeval.c',
+  'third_party/cares/cares/ares_cancel.c',
+  'third_party/cares/cares/ares_create_query.c',
+  'third_party/cares/cares/ares_data.c',
+  'third_party/cares/cares/ares_destroy.c',
+  'third_party/cares/cares/ares_expand_name.c',
+  'third_party/cares/cares/ares_expand_string.c',
+  'third_party/cares/cares/ares_fds.c',
+  'third_party/cares/cares/ares_free_hostent.c',
+  'third_party/cares/cares/ares_free_string.c',
+  'third_party/cares/cares/ares_getenv.c',
+  'third_party/cares/cares/ares_gethostbyaddr.c',
+  'third_party/cares/cares/ares_gethostbyname.c',
+  'third_party/cares/cares/ares_getnameinfo.c',
+  'third_party/cares/cares/ares_getopt.c',
+  'third_party/cares/cares/ares_getsock.c',
+  'third_party/cares/cares/ares_init.c',
+  'third_party/cares/cares/ares_library_init.c',
+  'third_party/cares/cares/ares_llist.c',
+  'third_party/cares/cares/ares_mkquery.c',
+  'third_party/cares/cares/ares_nowarn.c',
+  'third_party/cares/cares/ares_options.c',
+  'third_party/cares/cares/ares_parse_a_reply.c',
+  'third_party/cares/cares/ares_parse_aaaa_reply.c',
+  'third_party/cares/cares/ares_parse_mx_reply.c',
+  'third_party/cares/cares/ares_parse_naptr_reply.c',
+  'third_party/cares/cares/ares_parse_ns_reply.c',
+  'third_party/cares/cares/ares_parse_ptr_reply.c',
+  'third_party/cares/cares/ares_parse_soa_reply.c',
+  'third_party/cares/cares/ares_parse_srv_reply.c',
+  'third_party/cares/cares/ares_parse_txt_reply.c',
+  'third_party/cares/cares/ares_platform.c',
+  'third_party/cares/cares/ares_process.c',
+  'third_party/cares/cares/ares_query.c',
+  'third_party/cares/cares/ares_search.c',
+  'third_party/cares/cares/ares_send.c',
+  'third_party/cares/cares/ares_strcasecmp.c',
+  'third_party/cares/cares/ares_strdup.c',
+  'third_party/cares/cares/ares_strerror.c',
+  'third_party/cares/cares/ares_timeout.c',
+  'third_party/cares/cares/ares_version.c',
+  'third_party/cares/cares/ares_writev.c',
+  'third_party/cares/cares/bitncmp.c',
+  'third_party/cares/cares/inet_net_pton.c',
+  'third_party/cares/cares/inet_ntop.c',
+  'third_party/cares/cares/windows_port.c',
 ]
diff --git a/templates/Makefile.template b/templates/Makefile.template
index 917c69a..a3d6eee 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -408,7 +408,7 @@
   SHARED_VERSION_CPP = -${settings.cpp_version.major}
   SHARED_VERSION_CSHARP = -${settings.csharp_version.major}
   else ifeq ($(SYSTEM),Darwin)
-  EXECUTABLE_SUFFIX = 
+  EXECUTABLE_SUFFIX =
   SHARED_EXT_CORE = dylib
   SHARED_EXT_CPP = dylib
   SHARED_EXT_CSHARP = dylib
@@ -417,7 +417,7 @@
   SHARED_VERSION_CPP =
   SHARED_VERSION_CSHARP =
   else
-  EXECUTABLE_SUFFIX = 
+  EXECUTABLE_SUFFIX =
   SHARED_EXT_CORE = so.$(CORE_VERSION)
   SHARED_EXT_CPP = so.$(CPP_VERSION)
   SHARED_EXT_CSHARP = so.$(CSHARP_VERSION)
@@ -561,7 +561,7 @@
   HAS_EMBEDDED_PROTOBUF = true
   endif
 
-  ifeq ($(wildcard third_party/c-ares/ares.h),)
+  ifeq ($(wildcard third_party/cares/cares/ares.h),)
   HAS_EMBEDDED_CARES = false
   else
   HAS_EMBEDDED_CARES = true
@@ -616,7 +616,7 @@
   CARES_DEP = $(LIBDIR)/$(CONFIG)/libares.a
   CARES_MERGE_OBJS = $(LIBARES_OBJS)
   CARES_MERGE_LIBS = $(LIBDIR)/$(CONFIG)/libares.a
-  CPPFLAGS := -Ithird_party/c-ares -Isrc/c-ares $(CPPFLAGS)
+  CPPFLAGS := -Ithird_party/cares -Ithird_party/cares/cares $(CPPFLAGS)
   LDFLAGS := -L$(LIBDIR)/$(CONFIG)/c-ares $(LDFLAGS)
   else
   ifeq ($(HAS_PKG_CONFIG),true)
diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template
index 79103f3..5fd3683 100644
--- a/templates/binding.gyp.template
+++ b/templates/binding.gyp.template
@@ -102,7 +102,7 @@
         ['OS == "win"', {
           "include_dirs": [
             "third_party/zlib",
-            "third_party/c-ares"
+            "third_party/cares/cares"
           ],
           "defines": [
             '_WIN32_WINNT=0x0600',
diff --git a/tools/run_tests/generated/sources_and_headers.json b/tools/run_tests/generated/sources_and_headers.json
index 522fe87..277c3b8 100644
--- a/tools/run_tests/generated/sources_and_headers.json
+++ b/tools/run_tests/generated/sources_and_headers.json
@@ -6355,39 +6355,35 @@
   {
     "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/config-win32.h", 
-      "third_party/c-ares/setup_once.h"
+      "third_party/cares/ares_build.h", 
+      "third_party/cares/cares/ares.h", 
+      "third_party/cares/cares/ares_data.h", 
+      "third_party/cares/cares/ares_dns.h", 
+      "third_party/cares/cares/ares_getenv.h", 
+      "third_party/cares/cares/ares_getopt.h", 
+      "third_party/cares/cares/ares_inet_net_pton.h", 
+      "third_party/cares/cares/ares_iphlpapi.h", 
+      "third_party/cares/cares/ares_ipv6.h", 
+      "third_party/cares/cares/ares_library_init.h", 
+      "third_party/cares/cares/ares_llist.h", 
+      "third_party/cares/cares/ares_nowarn.h", 
+      "third_party/cares/cares/ares_platform.h", 
+      "third_party/cares/cares/ares_private.h", 
+      "third_party/cares/cares/ares_rules.h", 
+      "third_party/cares/cares/ares_setup.h", 
+      "third_party/cares/cares/ares_strcasecmp.h", 
+      "third_party/cares/cares/ares_strdup.h", 
+      "third_party/cares/cares/ares_version.h", 
+      "third_party/cares/cares/bitncmp.h", 
+      "third_party/cares/cares/config-win32.h", 
+      "third_party/cares/cares/setup_once.h", 
+      "third_party/cares/config_darwin/ares_config.h", 
+      "third_party/cares/config_linux/ares_config.h"
     ], 
     "is_filegroup": false, 
     "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"
-    ], 
+    "src": [], 
     "third_party": false, 
     "type": "lib"
   }, 
diff --git a/vsprojects/vcxproj/ares/ares.vcxproj b/vsprojects/vcxproj/ares/ares.vcxproj
index 3a0b179..811f7c7 100644
--- a/vsprojects/vcxproj/ares/ares.vcxproj
+++ b/vsprojects/vcxproj/ares/ares.vcxproj
@@ -147,129 +147,129 @@
   </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\config-win32.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" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_data.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_dns.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_getenv.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_getopt.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_inet_net_pton.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_iphlpapi.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_ipv6.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_library_init.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_llist.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_nowarn.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_platform.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_private.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_rules.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_setup.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_strcasecmp.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_strdup.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_version.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\bitncmp.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\config-win32.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\setup_once.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\ares_build.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\config_linux\ares_config.h" />
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\config_darwin\ares_config.h" />
   </ItemGroup>
   <ItemGroup>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__close_sockets.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__close_sockets.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__get_hostent.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__get_hostent.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__read_line.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__read_line.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__timeval.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__timeval.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_cancel.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_cancel.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_create_query.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_create_query.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_data.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_data.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_destroy.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_destroy.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_name.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_expand_name.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_string.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_expand_string.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_fds.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_fds.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_hostent.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_free_hostent.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_string.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_free_string.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getenv.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyaddr.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_gethostbyaddr.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyname.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_gethostbyname.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getnameinfo.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getnameinfo.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getopt.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getsock.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getsock.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_init.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_init.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_library_init.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_llist.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_mkquery.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_mkquery.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_nowarn.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_options.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_options.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_a_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_a_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_aaaa_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_aaaa_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_mx_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_mx_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_naptr_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_naptr_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ns_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_ns_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ptr_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_ptr_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_soa_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_soa_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_srv_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_srv_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_txt_reply.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_txt_reply.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_platform.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_process.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_process.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_query.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_query.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_search.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_search.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_send.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_send.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strcasecmp.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strdup.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strerror.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strerror.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_timeout.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_timeout.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_version.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_version.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_writev.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_writev.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\bitncmp.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_net_pton.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\inet_net_pton.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_ntop.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\inet_ntop.c">
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\windows_port.c">
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\windows_port.c">
     </ClCompile>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/vsprojects/vcxproj/ares/ares.vcxproj.filters b/vsprojects/vcxproj/ares/ares.vcxproj.filters
index 47378f1..282a404 100644
--- a/vsprojects/vcxproj/ares/ares.vcxproj.filters
+++ b/vsprojects/vcxproj/ares/ares.vcxproj.filters
@@ -1,247 +1,244 @@
 <?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 Include="$(SolutionDir)\..\third_party\cares\cares\ares__close_sockets.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__get_hostent.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__get_hostent.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__read_line.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__read_line.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares__timeval.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares__timeval.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_cancel.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_cancel.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_create_query.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_create_query.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_data.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_data.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_destroy.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_destroy.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_name.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_expand_name.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_expand_string.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_expand_string.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_fds.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_fds.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_hostent.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_free_hostent.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_free_string.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_free_string.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getenv.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyaddr.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_gethostbyaddr.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_gethostbyname.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_gethostbyname.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getnameinfo.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getnameinfo.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getopt.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_getsock.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_getsock.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_init.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_init.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_library_init.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_llist.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_mkquery.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_mkquery.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_nowarn.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_options.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_options.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_a_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_a_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_aaaa_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_aaaa_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_mx_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_mx_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_naptr_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_naptr_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ns_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_ns_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_ptr_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_ptr_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_soa_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_soa_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_srv_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_srv_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_parse_txt_reply.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_parse_txt_reply.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_platform.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_process.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_process.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_query.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_query.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_search.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_search.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_send.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_send.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strcasecmp.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strdup.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_strerror.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_strerror.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_timeout.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_timeout.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_version.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_version.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\ares_writev.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\ares_writev.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\bitncmp.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_net_pton.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\inet_net_pton.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\inet_ntop.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\inet_ntop.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
-    <ClCompile Include="$(SolutionDir)\..\third_party\c-ares\windows_port.c">
-      <Filter>third_party\c-ares</Filter>
+    <ClCompile Include="$(SolutionDir)\..\third_party\cares\cares\windows_port.c">
+      <Filter>third_party\cares\cares</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_data.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_data.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_dns.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_dns.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getenv.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_getenv.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_getopt.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_getopt.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_inet_net_pton.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_inet_net_pton.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_iphlpapi.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_iphlpapi.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_ipv6.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_ipv6.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_library_init.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_library_init.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_llist.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_llist.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_nowarn.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_nowarn.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_platform.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_platform.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_private.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_private.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_rules.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_rules.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_setup.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_setup.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strcasecmp.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_strcasecmp.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_strdup.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_strdup.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\ares_version.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\ares_version.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\bitncmp.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\bitncmp.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\config-win32.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\config-win32.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\third_party\c-ares\setup_once.h">
-      <Filter>third_party\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\cares\setup_once.h">
+      <Filter>third_party\cares\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\c-ares\ares_build.h">
-      <Filter>src\c-ares</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\ares_build.h">
+      <Filter>third_party\cares</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_linux\ares_config.h">
-      <Filter>src\c-ares\config_linux</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\config_linux\ares_config.h">
+      <Filter>third_party\cares\config_linux</Filter>
     </ClInclude>
-    <ClInclude Include="$(SolutionDir)\..\src\c-ares\config_darwin\ares_config.h">
-      <Filter>src\c-ares\config_darwin</Filter>
+    <ClInclude Include="$(SolutionDir)\..\third_party\cares\config_darwin\ares_config.h">
+      <Filter>third_party\cares\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 Include="third_party\cares">
+      <UniqueIdentifier>{f5276ab6-c78a-eea3-7ce9-54d2081b3d6a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="third_party\cares\cares">
+      <UniqueIdentifier>{390f10a8-7730-6295-681d-6fbd990ad488}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="third_party\cares\config_darwin">
+      <UniqueIdentifier>{02918eea-69d3-f65c-08aa-6c6c3dd50c7a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="third_party\cares\config_linux">
+      <UniqueIdentifier>{8b1c2965-c2f3-d13b-2c35-9e2c298acda5}</UniqueIdentifier>
     </Filter>
   </ItemGroup>
 </Project>