summaryrefslogtreecommitdiff
path: root/methods/ftp.cc
diff options
context:
space:
mode:
authorEugene V. Lyubimkin <jackyf@1501-debian>2008-12-15 21:17:39 +0200
committerEugene V. Lyubimkin <jackyf@1501-debian>2008-12-15 21:17:39 +0200
commit788a8f42c1ec146c812550d076e5fb720e83ae52 (patch)
tree5cdb4e7b98f3bbb57fb76def64c4a334cbf89279 /methods/ftp.cc
parentfef5d395460ad45c097e8563c8b822173a9ae918 (diff)
Make apt proxy options have the highest priority, unified proxy determining code.
Diffstat (limited to 'methods/ftp.cc')
-rw-r--r--methods/ftp.cc33
1 files changed, 19 insertions, 14 deletions
diff --git a/methods/ftp.cc b/methods/ftp.cc
index 554a24cf5..c91600ad5 100644
--- a/methods/ftp.cc
+++ b/methods/ftp.cc
@@ -112,23 +112,28 @@ bool FTPConn::Open(pkgAcqMethod *Owner)
Close();
// Determine the proxy setting
- if (getenv("ftp_proxy") == 0)
+ string SpecificProxy = _config->Find("Acquire::ftp::Proxy::" + ServerName.Host);
+ if (!SpecificProxy.empty())
{
- string DefProxy = _config->Find("Acquire::ftp::Proxy");
- string SpecificProxy = _config->Find("Acquire::ftp::Proxy::" + ServerName.Host);
- if (SpecificProxy.empty() == false)
- {
- if (SpecificProxy == "DIRECT")
- Proxy = "";
- else
- Proxy = SpecificProxy;
- }
- else
- Proxy = DefProxy;
+ if (SpecificProxy == "DIRECT")
+ Proxy = "";
+ else
+ Proxy = SpecificProxy;
}
else
- Proxy = getenv("ftp_proxy");
-
+ {
+ string DefProxy = _config->Find("Acquire::ftp::Proxy");
+ if (!DefProxy.empty())
+ {
+ Proxy = DefProxy;
+ }
+ else
+ {
+ char* result = getenv("ftp_proxy");
+ Proxy = result ? result : "";
+ }
+ }
+
// Parse no_proxy, a , separated list of domains
if (getenv("no_proxy") != 0)
{