summaryrefslogtreecommitdiffstats
path: root/net/base/net_util.cc
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-21 22:03:00 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-21 22:03:00 +0000
commit71e4573a9ff241416f5cfc375dabec8b72c85e3c (patch)
treed6e52e21cd940aef48dc37e9094ba9d66bd6431f /net/base/net_util.cc
parentb360895e1e4ba2db735f82d85563a631e1cc0c5b (diff)
downloadchromium_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.cc31
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) {