From 8707edd9e4684ed68856cd8eeff15ebd1e8c88ea Mon Sep 17 00:00:00 2001 From: Patrick Cable Date: Wed, 27 Apr 2016 16:55:55 -0400 Subject: [PATCH 1/1] refactored no_proxy code to work regardless of where https proxy is set when using the https transport mechanism, $no_proxy is ignored if apt is getting it's proxy information from $https_proxy (as opposed to Acquire::https::Proxy somewhere in apt config). if the source of proxy information is Acquire::https::Proxy set in apt.conf (or apt.conf.d), then $no_proxy is honored. --- methods/https.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/methods/https.cc b/methods/https.cc index ac6d355..fc439be 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -187,13 +187,13 @@ void HttpsMethod::SetupProxy() /*{{{*/ if (UseProxy == "DIRECT") return; - if (UseProxy.empty() == false) + // Parse no_proxy, a comma (,) separated list of domains we don't want to use + // a proxy for so we stop right here if it is in the list + if (getenv("no_proxy") != 0 && CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) + return; + + if (UseProxy.empty() == true) { - // Parse no_proxy, a comma (,) separated list of domains we don't want to use - // a proxy for so we stop right here if it is in the list - if (getenv("no_proxy") != 0 && CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) - return; - } else { const char* result = getenv("https_proxy"); // FIXME: Fall back to http_proxy is to remain compatible with // existing setups and behaviour of apt.conf. This should be -- 2.4.5