]> granicus.if.org Git - curl/commitdiff
proxy: read the "no_proxy" variable only if necessary
authorMichael Kaufmann <mail@michael-kaufmann.ch>
Sun, 24 Sep 2017 13:21:44 +0000 (15:21 +0200)
committerMichael Kaufmann <mail@michael-kaufmann.ch>
Tue, 3 Oct 2017 16:04:42 +0000 (18:04 +0200)
Reviewed-by: Daniel Stenberg
Closes #1919

lib/url.c

index df12cbf6d027424e2760958bc4b8e1baa4a894e6..132dbb432c12b5253b43a2fc773e55bc1a08ff67 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -5352,22 +5352,21 @@ static CURLcode create_conn_helper_init_proxy(struct connectdata *conn)
     }
   }
 
-  no_proxy = curl_getenv("no_proxy");
-  if(!no_proxy)
-    no_proxy = curl_getenv("NO_PROXY");
+  if(!data->set.str[STRING_NOPROXY]) {
+    no_proxy = curl_getenv("no_proxy");
+    if(!no_proxy)
+      no_proxy = curl_getenv("NO_PROXY");
+  }
 
-  if(check_noproxy(conn->host.name, data->set.str[STRING_NOPROXY]) ||
-     (!data->set.str[STRING_NOPROXY] &&
-      check_noproxy(conn->host.name, no_proxy))) {
+  if(check_noproxy(conn->host.name, data->set.str[STRING_NOPROXY] ?
+      data->set.str[STRING_NOPROXY] : no_proxy)) {
     Curl_safefree(proxy);
     Curl_safefree(socksproxy);
   }
-  else if(!proxy && !socksproxy)
 #ifndef CURL_DISABLE_HTTP
+  else if(!proxy && !socksproxy)
     /* if the host is not in the noproxy list, detect proxy. */
     proxy = detect_proxy(conn);
-#else  /* !CURL_DISABLE_HTTP */
-    proxy = NULL;
 #endif /* CURL_DISABLE_HTTP */
 
   Curl_safefree(no_proxy);