summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-08 18:40:05 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-08 18:40:05 +0000
commit72569645fdd3ab18b27466e5d32149b2d2ed1172 (patch)
tree7d68a44f5e8dff7d30b73f9a6ecea3668c94f9f1
parentddf9d4aea57b36326ace447318cc06beb21ff9d2 (diff)
downloadchromium_src-72569645fdd3ab18b27466e5d32149b2d2ed1172.zip
chromium_src-72569645fdd3ab18b27466e5d32149b2d2ed1172.tar.gz
chromium_src-72569645fdd3ab18b27466e5d32149b2d2ed1172.tar.bz2
Pull in new googleurl@94 which includes GURL::EffectiveIntPort().
Update callers to use this method. Review URL: http://codereview.chromium.org/5641 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3024 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--net/base/net_util.cc22
-rw-r--r--net/base/net_util.h5
-rw-r--r--net/base/net_util_unittest.cc28
-rw-r--r--net/base/sdch_manager.cc18
-rw-r--r--net/base/sdch_manager.h3
-rw-r--r--net/http/http_auth_handler_digest.cc2
-rw-r--r--net/http/http_network_transaction.cc20
8 files changed, 11 insertions, 89 deletions
diff --git a/DEPS b/DEPS
index a436b93..645ac68 100644
--- a/DEPS
+++ b/DEPS
@@ -3,7 +3,7 @@ deps = {
"http://google-breakpad.googlecode.com/svn/trunk/src@285",
"src/googleurl":
- "http://google-url.googlecode.com/svn/trunk@93",
+ "http://google-url.googlecode.com/svn/trunk@94",
"src/sdch/open-vcdiff":
"http://open-vcdiff.googlecode.com/svn/trunk@18",
diff --git a/net/base/net_util.cc b/net/base/net_util.cc
index 57448af..305cbcc 100644
--- a/net/base/net_util.cc
+++ b/net/base/net_util.cc
@@ -913,26 +913,4 @@ bool IsPortAllowedByFtp(int port) {
return IsPortAllowedByDefault(port);
}
-std::string GetImplicitPort(const GURL& url) {
- if (url.has_port())
- return url.port();
-
- // TODO(eroman): unify with DefaultPortForScheme()
- // [url_canon_stdurl.cc]
-
- static const struct {
- const char* scheme;
- const char* port;
- } scheme_map[] = {
- { "http", "80" },
- { "https", "443" },
- { "ftp", "21" }
- };
- for (int i = 0; i < static_cast<int>(ARRAYSIZE_UNSAFE(scheme_map)); ++i) {
- if (url.SchemeIs(scheme_map[i].scheme))
- return scheme_map[i].port;
- }
- return std::string("");
-}
-
} // namespace net
diff --git a/net/base/net_util.h b/net/base/net_util.h
index 6ceead7..db28a76 100644
--- a/net/base/net_util.h
+++ b/net/base/net_util.h
@@ -131,11 +131,6 @@ bool IsPortAllowedByDefault(int port);
// restricted.
bool IsPortAllowedByFtp(int port);
-// Get the port number for the URL. If the URL does not have a port number,
-// then returns the default port for the scheme. If the scheme is unrecognized
-// returns empty string.
-std::string GetImplicitPort(const GURL& url);
-
} // namespace net
#endif // NET_BASE_NET_UTIL_H__
diff --git a/net/base/net_util_unittest.cc b/net/base/net_util_unittest.cc
index 884f2fe..22fb7d4 100644
--- a/net/base/net_util_unittest.cc
+++ b/net/base/net_util_unittest.cc
@@ -698,34 +698,6 @@ TEST(NetUtilTest, GetSuggestedFilename) {
}
}
-TEST(NetUtilTest, GetImplicitPort) {
- {
- GURL url("http://foo.bar/baz");
- EXPECT_STREQ("80", net::GetImplicitPort(url).c_str());
- }
- {
- GURL url("http://foo.bar:443/baz");
- EXPECT_STREQ("443", net::GetImplicitPort(url).c_str());
- }
- {
- GURL url("https://foo.bar/baz");
- EXPECT_STREQ("443", net::GetImplicitPort(url).c_str());
- }
- {
- GURL url("https://foo.bar:80/baz");
- EXPECT_STREQ("80", net::GetImplicitPort(url).c_str());
- }
- {
- // Invalid input.
- GURL url("file://foobar/baz");
- EXPECT_STREQ("", net::GetImplicitPort(url).c_str());
- }
- {
- GURL url("ftp://google.com");
- EXPECT_STREQ("21", net::GetImplicitPort(url).c_str());
- }
-}
-
// This is currently a windows specific function.
#if defined(OS_WIN)
namespace {
diff --git a/net/base/sdch_manager.cc b/net/base/sdch_manager.cc
index 6c8bce3..de1e0b0 100644
--- a/net/base/sdch_manager.cc
+++ b/net/base/sdch_manager.cc
@@ -214,18 +214,6 @@ void SdchManager::UrlSafeBase64Encode(const std::string& input,
// Security functions restricting loads and use of dictionaries.
// static
-int SdchManager::Dictionary::GetPortIncludingDefault(const GURL& url) {
- std::string port(url.port());
- if (port.length())
- return StringToInt(port);
- if (url.scheme() == "http")
- return 80; // Default port value.
- // TODO(jar): If sdch supports other schemes, then write a general function
- // or surface functionality hidden in url_cannon_stdurl.cc into url_canon.h.
- return -1;
-}
-
-// static
bool SdchManager::Dictionary::CanSet(const std::string& domain,
const std::string& path,
const std::set<int> ports,
@@ -256,7 +244,7 @@ bool SdchManager::Dictionary::CanSet(const std::string& domain,
// TODO(jar): Enforce item 4 above.
if (!ports.empty()
- && 0 == ports.count(GetPortIncludingDefault(dictionary_url)))
+ && 0 == ports.count(dictionary_url.EffectiveIntPort()))
return false;
return true;
}
@@ -276,7 +264,7 @@ bool SdchManager::Dictionary::CanUse(const GURL referring_url) {
if (!DomainMatch(referring_url, domain_))
return false;
if (!ports_.empty()
- && 0 == ports_.count(GetPortIncludingDefault(referring_url)))
+ && 0 == ports_.count(referring_url.EffectiveIntPort()))
return false;
if (path_.size() && !PathMatch(referring_url.path(), path_))
return false;
@@ -302,7 +290,7 @@ bool SdchManager::Dictionary::CanAdvertise(const GURL& target_url) {
*/
if (!DomainMatch(target_url, domain_))
return false;
- if (!ports_.empty() && 0 == ports_.count(GetPortIncludingDefault(target_url)))
+ if (!ports_.empty() && 0 == ports_.count(target_url.EffectiveIntPort()))
return false;
if (path_.size() && !PathMatch(target_url.path(), path_))
return false;
diff --git a/net/base/sdch_manager.h b/net/base/sdch_manager.h
index 7926b52..ae5f2d3 100644
--- a/net/base/sdch_manager.h
+++ b/net/base/sdch_manager.h
@@ -72,9 +72,6 @@ class SdchManager {
const GURL& url() const { return url_; }
const std::string& client_hash() const { return client_hash_; }
- // For a given URL, get the actual or default port.
- static int GetPortIncludingDefault(const GURL& url);
-
// Security method to check if we can advertise this dictionary for use
// if the |target_url| returns SDCH compressed data.
bool CanAdvertise(const GURL& target_url);
diff --git a/net/http/http_auth_handler_digest.cc b/net/http/http_auth_handler_digest.cc
index 7f351b4..18f166b 100644
--- a/net/http/http_auth_handler_digest.cc
+++ b/net/http/http_auth_handler_digest.cc
@@ -117,7 +117,7 @@ void HttpAuthHandlerDigest::GetRequestMethodAndPath(
if (target_ == HttpAuth::AUTH_PROXY && url.SchemeIs("https")) {
*method = "CONNECT";
- *path = url.host() + ":" + GetImplicitPort(url);
+ *path = url.host() + ":" + IntToString(url.EffectiveIntPort());
} else {
*method = request->method;
*path = HttpUtil::PathForRequest(url);
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index de3539317..52e9328 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -247,13 +247,12 @@ void HttpNetworkTransaction::BuildRequestHeaders() {
// in draft-luotonen-web-proxy-tunneling-01.txt and RFC 2817, Sections 5.2 and
// 5.3.
void HttpNetworkTransaction::BuildTunnelRequest() {
- std::string port = GetImplicitPort(request_->url);
-
// RFC 2616 Section 9 says the Host request-header field MUST accompany all
// HTTP/1.1 requests.
- request_headers_ = "CONNECT " + request_->url.host() + ":" + port +
- " HTTP/1.1\r\nHost: " + request_->url.host();
- if (request_->url.IntPort() != -1)
+ request_headers_ = StringPrintf("CONNECT %s:%d HTTP/1.1\r\n",
+ request_->url.host(), request_->url.EffectiveIntPort());
+ request_headers_ += "Host: " + request_->url.host();
+ if (request_->url.has_port())
request_headers_ += ":" + request_->url.port();
request_headers_ += "\r\n";
@@ -453,18 +452,11 @@ int HttpNetworkTransaction::DoResolveHost() {
t.GetNext();
host = t.token();
t.GetNext();
- port = static_cast<int>(StringToInt64(t.token()));
+ port = StringToInt(t.token());
} else {
// Direct connection
host = request_->url.host();
- port = request_->url.IntPort();
- if (port == url_parse::PORT_UNSPECIFIED) {
- if (using_ssl_) {
- port = 443; // Default HTTPS port
- } else {
- port = 80; // Default HTTP port
- }
- }
+ port = request_->url.EffectiveIntPort();
}
return resolver_.Resolve(host, port, &addresses_, &io_callback_);