summaryrefslogtreecommitdiff
path: root/libproxy/modules/config_sysconfig.cpp
diff options
context:
space:
mode:
authornicolas.dufresne@gmail.com <nicolas.dufresne@gmail.com@c587cffe-e639-0410-9787-d7902ae8ed56>2012-07-05 16:01:12 +0000
committernicolas.dufresne@gmail.com <nicolas.dufresne@gmail.com@c587cffe-e639-0410-9787-d7902ae8ed56>2012-07-05 16:01:12 +0000
commit61048ad16366884c6a9b908a90fb56c875fe46c7 (patch)
treeb1c3384447f88766ab15579f536bfabc9201007f /libproxy/modules/config_sysconfig.cpp
parent75d11a34620966a07638337959aa8cd8c9d89893 (diff)
downloadlibproxy-61048ad16366884c6a9b908a90fb56c875fe46c7.tar.gz
Allow multiple result to be returned from static config
git-svn-id: http://libproxy.googlecode.com/svn/trunk@842 c587cffe-e639-0410-9787-d7902ae8ed56
Diffstat (limited to 'libproxy/modules/config_sysconfig.cpp')
-rw-r--r--libproxy/modules/config_sysconfig.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/libproxy/modules/config_sysconfig.cpp b/libproxy/modules/config_sysconfig.cpp
index 6e97ae8..b7985ae 100644
--- a/libproxy/modules/config_sysconfig.cpp
+++ b/libproxy/modules/config_sysconfig.cpp
@@ -124,20 +124,24 @@ public:
~sysconfig_config_extension() {
}
- url get_config(url url) throw (runtime_error) {
+ vector<url> get_config(const url &dst) throw (runtime_error) {
map<string,string>::const_iterator it = _data.find("PROXY_ENABLED");
- if (it != _data.end() && it->second == "no")
- return libproxy::url("direct://");
+ vector<url> response;
+
+ if (it != _data.end() && it->second == "no") {
+ response.push_back(url("direct://"));
+ return response;
+ }
string key;
string proxy;
// If the URL is an ftp url, try to read the ftp proxy
- if (url.get_scheme() == "ftp")
+ if (dst.get_scheme() == "ftp")
key = "FTP_PROXY";
- else if (url.get_scheme() == "http")
+ else if (dst.get_scheme() == "http")
key = "HTTP_PROXY";
- else if (url.get_scheme() == "https")
+ else if (dst.get_scheme() == "https")
key = "HTTPS_PROXY";
it = _data.find(key);
@@ -147,10 +151,11 @@ public:
if (proxy.empty())
throw runtime_error("Unable to read configuration");
- return libproxy::url(proxy);
+ response.push_back(url(proxy));
+ return response;
}
- string get_ignore(url) {
+ string get_ignore(const url&) {
map<string,string>::const_iterator it = _data.find("NO_PROXY");
if (it != _data.end())
return it->second;