gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 13/264: easy: Fix curl_easy_duphandle for builds missing IPv6 th


From: gnunet
Subject: [gnurl] 13/264: easy: Fix curl_easy_duphandle for builds missing IPv6 that use c-ares
Date: Thu, 30 Apr 2020 16:05:16 +0200

This is an automated email from the git hooks/post-receive script.

nikita pushed a commit to branch master
in repository gnurl.

commit 3bfda07004a5739fb306e55cb9529ba3de35fbdb
Author: Jay Satiro <address@hidden>
AuthorDate: Sat Mar 14 02:19:04 2020 -0400

    easy: Fix curl_easy_duphandle for builds missing IPv6 that use c-ares
    
    - Ignore CURLE_NOT_BUILT_IN errors returned by c-ares functions in
      curl_easy_duphandle.
    
    Prior to this change if c-ares was used as the resolver backend and
    either it was too old or libcurl was built without IPv6 support then
    some of our resolver functions could return CURLE_NOT_BUILT_IN to
    curl_easy_duphandle causing it to fail.
    
    Caused by c8f086b which shipped in 7.69.1.
    
    Reported-by: Karl Chen
    
    Fixes https://github.com/curl/curl/issues/5097
    Closes https://github.com/curl/curl/pull/5100
---
 lib/easy.c | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/lib/easy.c b/lib/easy.c
index b648e80c1..d08c6066c 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -884,14 +884,25 @@ struct Curl_easy *curl_easy_duphandle(struct Curl_easy 
*data)
     goto fail;
 
 #ifdef USE_ARES
-  if(Curl_set_dns_servers(outcurl, data->set.str[STRING_DNS_SERVERS]))
-    goto fail;
-  if(Curl_set_dns_interface(outcurl, data->set.str[STRING_DNS_INTERFACE]))
-    goto fail;
-  if(Curl_set_dns_local_ip4(outcurl, data->set.str[STRING_DNS_LOCAL_IP4]))
-    goto fail;
-  if(Curl_set_dns_local_ip6(outcurl, data->set.str[STRING_DNS_LOCAL_IP6]))
-    goto fail;
+  {
+    CURLcode rc;
+
+    rc = Curl_set_dns_servers(outcurl, data->set.str[STRING_DNS_SERVERS]);
+    if(rc && rc != CURLE_NOT_BUILT_IN)
+      goto fail;
+
+    rc = Curl_set_dns_interface(outcurl, data->set.str[STRING_DNS_INTERFACE]);
+    if(rc && rc != CURLE_NOT_BUILT_IN)
+      goto fail;
+
+    rc = Curl_set_dns_local_ip4(outcurl, data->set.str[STRING_DNS_LOCAL_IP4]);
+    if(rc && rc != CURLE_NOT_BUILT_IN)
+      goto fail;
+
+    rc = Curl_set_dns_local_ip6(outcurl, data->set.str[STRING_DNS_LOCAL_IP6]);
+    if(rc && rc != CURLE_NOT_BUILT_IN)
+      goto fail;
+  }
 #endif /* USE_ARES */
 
   Curl_convert_setup(outcurl);

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]