diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-21 22:03:00 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-21 22:03:00 +0000 |
commit | 71e4573a9ff241416f5cfc375dabec8b72c85e3c (patch) | |
tree | d6e52e21cd940aef48dc37e9094ba9d66bd6431f /net/base/net_util.cc | |
parent | b360895e1e4ba2db735f82d85563a631e1cc0c5b (diff) | |
download | chromium_src-71e4573a9ff241416f5cfc375dabec8b72c85e3c.zip chromium_src-71e4573a9ff241416f5cfc375dabec8b72c85e3c.tar.gz chromium_src-71e4573a9ff241416f5cfc375dabec8b72c85e3c.tar.bz2 |
Changes the UI for HTTP/FTP auth challenges to include the server's port. So instead of "www.foo.com" it will say "www.foo.com:80". We need to include the port number since otherwise it can be ambiguous what the actual target server is.
This change also introduces utility function "GetHostAnd[Optional]Port()" to help with forming <host> [":" <port>] strings.
BUG=12073
Review URL: http://codereview.chromium.org/112041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16672 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/net_util.cc')
-rw-r--r-- | net/base/net_util.cc | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/net/base/net_util.cc b/net/base/net_util.cc index c309653..06b43be 100644 --- a/net/base/net_util.cc +++ b/net/base/net_util.cc @@ -944,10 +944,10 @@ int SetNonBlocking(int fd) { #endif } -bool GetHostAndPort(std::string::const_iterator host_and_port_begin, - std::string::const_iterator host_and_port_end, - std::string* host, - int* port) { +bool ParseHostAndPort(std::string::const_iterator host_and_port_begin, + std::string::const_iterator host_and_port_end, + std::string* host, + int* port) { if (host_and_port_begin >= host_and_port_end) return false; @@ -991,10 +991,25 @@ bool GetHostAndPort(std::string::const_iterator host_and_port_begin, return true; // Success. } -bool GetHostAndPort(const std::string& host_and_port, - std::string* host, - int* port) { - return GetHostAndPort(host_and_port.begin(), host_and_port.end(), host, port); +bool ParseHostAndPort(const std::string& host_and_port, + std::string* host, + int* port) { + return ParseHostAndPort( + host_and_port.begin(), host_and_port.end(), host, port); +} + +std::string GetHostAndPort(const GURL& url) { + // For IPv6 literals, GURL::host() already includes the brackets so it is + // safe to just append a colon. + return StringPrintf("%s:%d", url.host().c_str(), url.EffectiveIntPort()); +} + +std::string GetHostAndOptionalPort(const GURL& url) { + // For IPv6 literals, GURL::host() already includes the brackets + // so it is safe to just append a colon. + if (url.has_port()) + return StringPrintf("%s:%s", url.host().c_str(), url.port().c_str()); + return url.host(); } std::string NetAddressToString(const struct addrinfo* net_address) { |