summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorPatrick Cable <pc@pcable.net>2016-04-27 16:55:55 -0400
committerPatrick Cable <pc@pcable.net>2016-04-27 16:55:55 -0400
commit8707edd9e4684ed68856cd8eeff15ebd1e8c88ea (patch)
tree6e7bc0a0fc230bc6d26e8297b404dba98adf71ce /methods
parent03d6de04fb366127d950cc484317d0e7ddebaa75 (diff)
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.
Diffstat (limited to 'methods')
-rw-r--r--methods/https.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/methods/https.cc b/methods/https.cc
index ac6d355ed..fc439bef8 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