- When building with c-ares 1.6.1 (not yet released) or later and IPv6 support
authorDaniel Stenberg <daniel@haxx.se>
Sat, 31 Jan 2009 20:25:55 +0000 (20:25 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 31 Jan 2009 20:25:55 +0000 (20:25 +0000)
  enabled, we can now take advantage of its brand new AF_UNSPEC support in
  ares_gethostbyname(). This makes test case 241 finally run fine for me wtih
  this setup since it now parses the "::1 ip6-localhost" line fine in my
  /etc/hosts file!

CHANGES
RELEASE-NOTES
lib/hostares.c

diff --git a/CHANGES b/CHANGES
index d5fa106..8ef4e55 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
 
                                   Changelog
 
+Daniel Stenberg (31 Jan 2009)
+- When building with c-ares 1.6.1 (not yet released) or later and IPv6 support
+  enabled, we can now take advantage of its brand new AF_UNSPEC support in
+  ares_gethostbyname(). This makes test case 241 finally run fine for me wtih
+  this setup since it now parses the "::1 ip6-localhost" line fine in my
+  /etc/hosts file!
+
 Daniel Stenberg (30 Jan 2009)
 - Scott Cantor filed bug report #2550061
   (http://curl.haxx.se/bug/view.cgi?id=2550061) mentioning that I failed to
index d35eb91..a2ecac0 100644 (file)
@@ -16,6 +16,7 @@ This release includes the following changes:
  o Added CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC - with
    the corresponding curl options --socks5-gssapi-service and
    --socks5-gssapi-nec
+ o Improved IPv6 support when built with with c-ares >= 1.6.1
 
 This release includes the following bugfixes:
 
index 1f49b67..708af4e 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -326,11 +326,14 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
   }
 
   switch(data->set.ip_version) {
+  default:
+#if ARES_VERSION >= 0x010601
+    family = PF_UNSPEC; /* supported by c-ares since 1.6.1, so for older
+                           c-ares versions this just falls through and defaults
+                           to PF_INET */
+    break;
+#endif
   case CURL_IPRESOLVE_V4:
-  default: /* By default we try ipv4, as PF_UNSPEC isn't supported by c-ares.
-              This is a bit disturbing since users may very well assume that
-              both kinds of addresses are asked for, but the problem is really
-              in c-ares' end here. */
     family = PF_INET;
     break;
   case CURL_IPRESOLVE_V6: