diff options
author | Patrick Cable <pc@pcable.net> | 2016-04-27 16:55:55 -0400 |
---|---|---|
committer | Patrick Cable <pc@pcable.net> | 2016-04-27 16:55:55 -0400 |
commit | 8707edd9e4684ed68856cd8eeff15ebd1e8c88ea (patch) | |
tree | 6e7bc0a0fc230bc6d26e8297b404dba98adf71ce | |
parent | 03d6de04fb366127d950cc484317d0e7ddebaa75 (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.
-rw-r--r-- | methods/https.cc | 12 |
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 |