Commit 97386c3c authored by Maxim Prohorov's avatar Maxim Prohorov Committed by Daniel Stenberg
Browse files

resolve with c-ares: don't resolve IPv6 when not working

If the Curl_ipv6works() function says no, there is no reason to try AAAA
names even if libcurl was built with IPv6 support enabled.

Bug: http://curl.haxx.se/mail/lib-2012-03/0045.html
parent e25590a2
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -582,6 +582,7 @@ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn,
    res->last_status = ARES_ENOTFOUND;
#ifdef ENABLE_IPV6 /* CURLRES_IPV6 */
    if(family == PF_UNSPEC) {
      if(Curl_ipv6works()) {
        res->num_pending = 2;

        /* areschannel is already setup in the Curl_open() function */
@@ -590,6 +591,14 @@ Curl_addrinfo *Curl_resolver_getaddrinfo(struct connectdata *conn,
        ares_gethostbyname((ares_channel)data->state.resolver, hostname,
                            PF_INET6, query_completed_cb, conn);
      }
      else {
        res->num_pending = 1;

        /* areschannel is already setup in the Curl_open() function */
        ares_gethostbyname((ares_channel)data->state.resolver, hostname,
                            PF_INET, query_completed_cb, conn);
      }
    }
    else
#endif /* CURLRES_IPV6 */
    {