Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Unified Diff: net/http/http_network_session.cc

Issue 2870030: Implement SSLClientSocketPool. (Closed)
Patch Set: Rebase and fix mac compile error Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/http/http_network_session.cc
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index e49674b1dd4b53baf3722ce18b121d4ba565d633..971786a50533b5cf210e9011964913cb1e38c25d 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -44,18 +44,21 @@ HttpNetworkSession::HttpNetworkSession(
HttpAuthHandlerFactory* http_auth_handler_factory,
HttpNetworkDelegate* network_delegate,
NetLog* net_log)
- // TODO(vandebo) when we've completely converted to pools, the base TCP
- // pool name should get changed to TCP instead of Transport.
- : tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")),
+ : tcp_pool_histograms_(new ClientSocketPoolHistograms("TCP")),
tcp_for_http_proxy_pool_histograms_(
new ClientSocketPoolHistograms("TCPforHTTPProxy")),
http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")),
tcp_for_socks_pool_histograms_(
new ClientSocketPoolHistograms("TCPforSOCKS")),
socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")),
- tcp_socket_pool_(new TCPClientSocketPool(g_max_sockets,
- g_max_sockets_per_group, tcp_pool_histograms_, host_resolver,
- client_socket_factory, net_log)),
+ ssl_pool_histograms_(new ClientSocketPoolHistograms("SSL")),
+ tcp_socket_pool_(new TCPClientSocketPool(
+ g_max_sockets, g_max_sockets_per_group, tcp_pool_histograms_,
+ host_resolver, client_socket_factory, net_log)),
+ ssl_socket_pool_(new SSLClientSocketPool(
+ g_max_sockets, g_max_sockets_per_group, ssl_pool_histograms_,
+ host_resolver, client_socket_factory, tcp_socket_pool_, NULL,
+ NULL, net_log)),
socket_factory_(client_socket_factory),
host_resolver_(host_resolver),
proxy_service_(proxy_service),
@@ -74,12 +77,12 @@ HttpNetworkSession::~HttpNetworkSession() {
const scoped_refptr<HttpProxyClientSocketPool>&
HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) {
HTTPProxySocketPoolMap::const_iterator it =
- http_proxy_socket_pool_.find(http_proxy);
- if (it != http_proxy_socket_pool_.end())
+ http_proxy_socket_pools_.find(http_proxy);
+ if (it != http_proxy_socket_pools_.end())
return it->second;
std::pair<HTTPProxySocketPoolMap::iterator, bool> ret =
- http_proxy_socket_pool_.insert(
+ http_proxy_socket_pools_.insert(
std::make_pair(
http_proxy,
new HttpProxyClientSocketPool(
@@ -97,18 +100,42 @@ HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) {
const scoped_refptr<SOCKSClientSocketPool>&
HttpNetworkSession::GetSocketPoolForSOCKSProxy(
const HostPortPair& socks_proxy) {
- SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy);
- if (it != socks_socket_pool_.end())
+ SOCKSSocketPoolMap::const_iterator it = socks_socket_pools_.find(socks_proxy);
+ if (it != socks_socket_pools_.end())
return it->second;
- std::pair<SOCKSSocketPoolMap::iterator, bool> ret = socks_socket_pool_.insert(
- std::make_pair(socks_proxy, new SOCKSClientSocketPool(
- g_max_sockets_per_proxy_server, g_max_sockets_per_group,
- socks_pool_histograms_, host_resolver_,
- new TCPClientSocketPool(g_max_sockets_per_proxy_server,
- g_max_sockets_per_group, tcp_for_socks_pool_histograms_,
- host_resolver_, socket_factory_, net_log_),
- net_log_)));
+ std::pair<SOCKSSocketPoolMap::iterator, bool> ret =
+ socks_socket_pools_.insert(
+ std::make_pair(socks_proxy, new SOCKSClientSocketPool(
+ g_max_sockets_per_proxy_server, g_max_sockets_per_group,
+ socks_pool_histograms_, host_resolver_,
+ new TCPClientSocketPool(g_max_sockets_per_proxy_server,
+ g_max_sockets_per_group, tcp_for_socks_pool_histograms_,
+ host_resolver_, socket_factory_, net_log_),
+ net_log_)));
+
+ return ret.first->second;
+}
+
+const scoped_refptr<SSLClientSocketPool>&
+HttpNetworkSession::GetSocketPoolForSSLWithProxy(
+ const HostPortPair& proxy_server) {
+ SSLSocketPoolMap::const_iterator it =
+ ssl_socket_pools_for_proxies_.find(proxy_server);
+ if (it != ssl_socket_pools_for_proxies_.end())
+ return it->second;
+
+ SSLClientSocketPool* new_pool = new SSLClientSocketPool(
+ g_max_sockets_per_proxy_server, g_max_sockets_per_group,
+ ssl_pool_histograms_, host_resolver_, socket_factory_,
+ NULL,
+ GetSocketPoolForHTTPProxy(proxy_server),
+ GetSocketPoolForSOCKSProxy(proxy_server),
+ net_log_);
+
+ std::pair<SSLSocketPoolMap::iterator, bool> ret =
+ ssl_socket_pools_for_proxies_.insert(std::make_pair(proxy_server,
+ new_pool));
return ret.first->second;
}

Powered by Google App Engine
This is Rietveld 408576698