Chromium Code Reviews| Index: net/proxy/proxy_bypass_rules.cc |
| diff --git a/net/proxy/proxy_bypass_rules.cc b/net/proxy/proxy_bypass_rules.cc |
| index 6bf1c6157e560e3fa72b1df152affcb037f962a7..3098c57202ab0566b878588081d706577ccd9d7f 100644 |
| --- a/net/proxy/proxy_bypass_rules.cc |
| +++ b/net/proxy/proxy_bypass_rules.cc |
| @@ -6,10 +6,11 @@ |
| #include "base/stl_util.h" |
| #include "base/strings/string_number_conversions.h" |
| -#include "base/strings/string_util.h" |
| -#include "base/strings/stringprintf.h" |
| #include "base/strings/string_piece.h" |
| #include "base/strings/string_tokenizer.h" |
| +#include "base/strings/string_util.h" |
| +#include "base/strings/stringprintf.h" |
| +#include "net/base/host_port_pair.h" |
| #include "net/base/net_util.h" |
| namespace net { |
| @@ -131,6 +132,7 @@ class BypassIPBlockRule : public ProxyBypassRules::Rule { |
| }; |
| // Returns true if the given string represents an IP address. |
| +// IPv6 addresses are expected to be bracketed. |
| bool IsIPAddress(const std::string& domain) { |
| // From GURL::HostIsIPAddress() |
| url::RawCanonOutputT<char, 128> ignored_output; |
| @@ -305,9 +307,10 @@ bool ProxyBypassRules::AddRuleFromStringInternal( |
| std::string host; |
| int port; |
| if (ParseHostAndPort(raw, &host, &port)) { |
| - if (IsIPAddress(host)) { |
| + std::string bracketed_host = HostPortPair(host, 80).HostForURL(); |
|
Ryan Hamilton
2014/09/24 21:48:49
nit: s/80/port/ ? (I suspect it doesn't actually
eroman
2014/09/24 21:59:28
The specific port used does not matter, I am just
|
| + if (IsIPAddress(bracketed_host)) { |
| // Canonicalize the IP literal before adding it as a string pattern. |
| - GURL tmp_url("http://" + host); |
| + GURL tmp_url("http://" + bracketed_host); |
| return AddRuleForHostname(scheme, tmp_url.host(), port); |
| } |
| } |