summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_config.cc
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-13 17:32:37 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-13 17:32:37 +0000
commit13a279ed95dc2e5d2f71172594dca1c3901b1322 (patch)
treece274eb858c4c4fdd86e47fb05aba8cf03766aa1 /net/proxy/proxy_config.cc
parent6b5f21d8a7f8c0b6b4a689f32afe62fe64d0fa04 (diff)
downloadchromium_src-13a279ed95dc2e5d2f71172594dca1c3901b1322.zip
chromium_src-13a279ed95dc2e5d2f71172594dca1c3901b1322.tar.gz
chromium_src-13a279ed95dc2e5d2f71172594dca1c3901b1322.tar.bz2
Add some LOG(INFO) to help diagnose problems when proxy is not working.
- Dump the proxy configuration to LOG(INFO) each time it changes - Log each attempt at downloading a PAC script. Review URL: http://codereview.chromium.org/67053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13601 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/proxy_config.cc')
-rw-r--r--net/proxy/proxy_config.cc64
1 files changed, 64 insertions, 0 deletions
diff --git a/net/proxy/proxy_config.cc b/net/proxy/proxy_config.cc
index 07c1d50..009fcf0 100644
--- a/net/proxy/proxy_config.cc
+++ b/net/proxy/proxy_config.cc
@@ -80,3 +80,67 @@ const ProxyServer* ProxyConfig::ProxyRules::MapSchemeToProxy(
}
} // namespace net
+
+namespace {
+
+// Helper to stringize a ProxyServer.
+std::ostream& operator<<(std::ostream& out,
+ const net::ProxyServer& proxy_server) {
+ if (proxy_server.is_valid())
+ out << proxy_server.ToURI();
+ return out;
+}
+
+// Helper to stringize a ProxyRules.
+std::ostream& operator<<(std::ostream& out,
+ const net::ProxyConfig::ProxyRules& rules) {
+ // Stringize the type enum.
+ std::string type;
+ switch (rules.type) {
+ case net::ProxyConfig::ProxyRules::TYPE_NO_RULES:
+ type = "TYPE_NO_RULES";
+ break;
+ case net::ProxyConfig::ProxyRules::TYPE_PROXY_PER_SCHEME:
+ type = "TYPE_PROXY_PER_SCHEME";
+ break;
+ case net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY:
+ type = "TYPE_SINGLE_PROXY";
+ break;
+ default:
+ type = IntToString(rules.type);
+ break;
+ }
+ return out << " {\n"
+ << " type: " << type << "\n"
+ << " single_proxy: " << rules.single_proxy << "\n"
+ << " proxy_for_http: " << rules.proxy_for_http << "\n"
+ << " proxy_for_https: " << rules.proxy_for_https << "\n"
+ << " proxy_for_ftp: " << rules.proxy_for_ftp << "\n"
+ << " }";
+}
+
+} // namespace
+
+std::ostream& operator<<(std::ostream& out, const net::ProxyConfig& config) {
+ out << "{\n"
+ << " auto_detect: " << config.auto_detect << "\n"
+ << " pac_url: " << config.pac_url << "\n"
+ << " proxy_rules:\n" << config.proxy_rules << "\n"
+ << " proxy_bypass_local_names: " << config.proxy_bypass_local_names
+ << "\n"
+ << " proxy_bypass_list:\n";
+
+ // Print out the proxy bypass list.
+ if (!config.proxy_bypass.empty()) {
+ out << " {\n";
+ std::vector<std::string>::const_iterator it;
+ for (it = config.proxy_bypass.begin();
+ it != config.proxy_bypass.end(); ++it) {
+ out << " " << *it << "\n";
+ }
+ out << " }\n";
+ }
+
+ out << "}";
+ return out;
+}