From 2642638fcae2c51a3407f0af6a90b3c6aca895f5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 1 Aug 2009 11:02:10 +0000 Subject: - Alexander Beedie provided the patch for a noproxy problem: If I have set CURLOPT_NOPROXY to "*", or to a host that should not use a proxy, I actually could still end up using a proxy if a proxy environment variable was set. --- CHANGES | 5 +++++ RELEASE-NOTES | 3 ++- TODO-RELEASE | 2 -- lib/url.c | 11 +++++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGES b/CHANGES index 52995a6bf..6d7b833e8 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,11 @@ Changelog +Daniel Stenberg (1 Aug 2009) +- Alexander Beedie provided the patch for a noproxy problem: If I have set + CURLOPT_NOPROXY to "*", or to a host that should not use a proxy, I actually + could still end up using a proxy if a proxy environment variable was set. + Daniel Stenberg (27 Jul 2009) - All the quote options (CURLOPT_QUOTE, CURLOPT_POSTQUOTE and CURLOPT_PREQUOTE) now accept a preceeding asterisk before the command to diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 1b94e20c1..b715d5aef 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -38,6 +38,7 @@ This release includes the following bugfixes: o improved the support for client certificates in libcurl+NSS o fix leak in gtls code o missing algorithms in libcurl+OpenSSL + o with noproxy set you could still get a proxy if a proxy env was set This release includes the following known bugs: @@ -50,6 +51,6 @@ advice from friends like these: Andre Guibert de Bruet, Mike Crowe, Claes Jakobsson, John E. Malmberg, Aaron Oneal, Igor Novoseltsev, Eric Wong, Bill Hoffman, Daniel Steinberg, Fabian Keil, Michal Marek, Reuven Wachtfogel, Markus Koetter, - Constantine Sapuntzakis, David Binderman, Johan van Selst + Constantine Sapuntzakis, David Binderman, Johan van Selst, Alexander Beedie Thanks! (and sorry if I forgot to mention someone) diff --git a/TODO-RELEASE b/TODO-RELEASE index cda345f9a..513ad81cd 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -1,8 +1,6 @@ To be addressed in 7.19.6 (planned release: August 2009) ========================= -246 - small logic error with CURLOPT_NOPROXY - 248 - "Pausing pipeline problems." 249 - Wildcard cert name checking and null termination diff --git a/lib/url.c b/lib/url.c index 5f209fe5e..96db7e481 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4419,14 +4419,17 @@ static CURLcode create_conn(struct SessionHandle *data, } } - if(!proxy) - proxy = detect_proxy(conn); - else if(data->set.str[STRING_NOPROXY]) { - if(check_noproxy(conn->host.name, data->set.str[STRING_NOPROXY])) { + + if(data->set.str[STRING_NOPROXY] && + check_noproxy(conn->host.name, data->set.str[STRING_NOPROXY])) { + if(proxy) { free(proxy); /* proxy is in exception list */ proxy = NULL; } } + else if(!proxy) + proxy = detect_proxy(conn); + if(proxy && !*proxy) { free(proxy); /* Don't bother with an empty proxy string */ proxy = NULL; -- cgit v1.2.3