| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/http/http_network_session.h" | 5 #include "net/http/http_network_session.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stl_util-inl.h" | 10 #include "base/stl_util-inl.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 HttpNetworkSession::HttpNetworkSession( | 38 HttpNetworkSession::HttpNetworkSession( |
| 39 HostResolver* host_resolver, | 39 HostResolver* host_resolver, |
| 40 ProxyService* proxy_service, | 40 ProxyService* proxy_service, |
| 41 ClientSocketFactory* client_socket_factory, | 41 ClientSocketFactory* client_socket_factory, |
| 42 SSLConfigService* ssl_config_service, | 42 SSLConfigService* ssl_config_service, |
| 43 SpdySessionPool* spdy_session_pool, | 43 SpdySessionPool* spdy_session_pool, |
| 44 HttpAuthHandlerFactory* http_auth_handler_factory, | 44 HttpAuthHandlerFactory* http_auth_handler_factory, |
| 45 HttpNetworkDelegate* network_delegate, | 45 HttpNetworkDelegate* network_delegate, |
| 46 NetLog* net_log) | 46 NetLog* net_log) |
| 47 // TODO(vandebo) when we've completely converted to pools, the base TCP | 47 : tcp_pool_histograms_(new ClientSocketPoolHistograms("TCP")), |
| 48 // pool name should get changed to TCP instead of Transport. | |
| 49 : tcp_pool_histograms_(new ClientSocketPoolHistograms("Transport")), | |
| 50 tcp_for_http_proxy_pool_histograms_( | 48 tcp_for_http_proxy_pool_histograms_( |
| 51 new ClientSocketPoolHistograms("TCPforHTTPProxy")), | 49 new ClientSocketPoolHistograms("TCPforHTTPProxy")), |
| 52 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")), | 50 http_proxy_pool_histograms_(new ClientSocketPoolHistograms("HTTPProxy")), |
| 53 tcp_for_socks_pool_histograms_( | 51 tcp_for_socks_pool_histograms_( |
| 54 new ClientSocketPoolHistograms("TCPforSOCKS")), | 52 new ClientSocketPoolHistograms("TCPforSOCKS")), |
| 55 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")), | 53 socks_pool_histograms_(new ClientSocketPoolHistograms("SOCK")), |
| 56 tcp_socket_pool_(new TCPClientSocketPool(g_max_sockets, | 54 ssl_pool_histograms_(new ClientSocketPoolHistograms("SSL")), |
| 57 g_max_sockets_per_group, tcp_pool_histograms_, host_resolver, | 55 tcp_socket_pool_(new TCPClientSocketPool( |
| 58 client_socket_factory, net_log)), | 56 g_max_sockets, g_max_sockets_per_group, tcp_pool_histograms_, |
| 57 host_resolver, client_socket_factory, net_log)), |
| 58 ssl_socket_pool_(new SSLClientSocketPool( |
| 59 g_max_sockets, g_max_sockets_per_group, ssl_pool_histograms_, |
| 60 host_resolver, client_socket_factory, tcp_socket_pool_, NULL, |
| 61 NULL, net_log)), |
| 59 socket_factory_(client_socket_factory), | 62 socket_factory_(client_socket_factory), |
| 60 host_resolver_(host_resolver), | 63 host_resolver_(host_resolver), |
| 61 proxy_service_(proxy_service), | 64 proxy_service_(proxy_service), |
| 62 ssl_config_service_(ssl_config_service), | 65 ssl_config_service_(ssl_config_service), |
| 63 spdy_session_pool_(spdy_session_pool), | 66 spdy_session_pool_(spdy_session_pool), |
| 64 http_auth_handler_factory_(http_auth_handler_factory), | 67 http_auth_handler_factory_(http_auth_handler_factory), |
| 65 network_delegate_(network_delegate), | 68 network_delegate_(network_delegate), |
| 66 net_log_(net_log) { | 69 net_log_(net_log) { |
| 67 DCHECK(proxy_service); | 70 DCHECK(proxy_service); |
| 68 DCHECK(ssl_config_service); | 71 DCHECK(ssl_config_service); |
| 69 } | 72 } |
| 70 | 73 |
| 71 HttpNetworkSession::~HttpNetworkSession() { | 74 HttpNetworkSession::~HttpNetworkSession() { |
| 72 } | 75 } |
| 73 | 76 |
| 74 const scoped_refptr<HttpProxyClientSocketPool>& | 77 const scoped_refptr<HttpProxyClientSocketPool>& |
| 75 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) { | 78 HttpNetworkSession::GetSocketPoolForHTTPProxy(const HostPortPair& http_proxy) { |
| 76 HTTPProxySocketPoolMap::const_iterator it = | 79 HTTPProxySocketPoolMap::const_iterator it = |
| 77 http_proxy_socket_pool_.find(http_proxy); | 80 http_proxy_socket_pools_.find(http_proxy); |
| 78 if (it != http_proxy_socket_pool_.end()) | 81 if (it != http_proxy_socket_pools_.end()) |
| 79 return it->second; | 82 return it->second; |
| 80 | 83 |
| 81 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = | 84 std::pair<HTTPProxySocketPoolMap::iterator, bool> ret = |
| 82 http_proxy_socket_pool_.insert( | 85 http_proxy_socket_pools_.insert( |
| 83 std::make_pair( | 86 std::make_pair( |
| 84 http_proxy, | 87 http_proxy, |
| 85 new HttpProxyClientSocketPool( | 88 new HttpProxyClientSocketPool( |
| 86 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 89 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
| 87 http_proxy_pool_histograms_, host_resolver_, | 90 http_proxy_pool_histograms_, host_resolver_, |
| 88 new TCPClientSocketPool( | 91 new TCPClientSocketPool( |
| 89 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 92 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
| 90 tcp_for_http_proxy_pool_histograms_, host_resolver_, | 93 tcp_for_http_proxy_pool_histograms_, host_resolver_, |
| 91 socket_factory_, net_log_), | 94 socket_factory_, net_log_), |
| 92 net_log_))); | 95 net_log_))); |
| 93 | 96 |
| 94 return ret.first->second; | 97 return ret.first->second; |
| 95 } | 98 } |
| 96 | 99 |
| 97 const scoped_refptr<SOCKSClientSocketPool>& | 100 const scoped_refptr<SOCKSClientSocketPool>& |
| 98 HttpNetworkSession::GetSocketPoolForSOCKSProxy( | 101 HttpNetworkSession::GetSocketPoolForSOCKSProxy( |
| 99 const HostPortPair& socks_proxy) { | 102 const HostPortPair& socks_proxy) { |
| 100 SOCKSSocketPoolMap::const_iterator it = socks_socket_pool_.find(socks_proxy); | 103 SOCKSSocketPoolMap::const_iterator it = socks_socket_pools_.find(socks_proxy); |
| 101 if (it != socks_socket_pool_.end()) | 104 if (it != socks_socket_pools_.end()) |
| 102 return it->second; | 105 return it->second; |
| 103 | 106 |
| 104 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = socks_socket_pool_.insert( | 107 std::pair<SOCKSSocketPoolMap::iterator, bool> ret = |
| 105 std::make_pair(socks_proxy, new SOCKSClientSocketPool( | 108 socks_socket_pools_.insert( |
| 106 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 109 std::make_pair(socks_proxy, new SOCKSClientSocketPool( |
| 107 socks_pool_histograms_, host_resolver_, | 110 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
| 108 new TCPClientSocketPool(g_max_sockets_per_proxy_server, | 111 socks_pool_histograms_, host_resolver_, |
| 109 g_max_sockets_per_group, tcp_for_socks_pool_histograms_, | 112 new TCPClientSocketPool(g_max_sockets_per_proxy_server, |
| 110 host_resolver_, socket_factory_, net_log_), | 113 g_max_sockets_per_group, tcp_for_socks_pool_histograms_, |
| 111 net_log_))); | 114 host_resolver_, socket_factory_, net_log_), |
| 115 net_log_))); |
| 112 | 116 |
| 113 return ret.first->second; | 117 return ret.first->second; |
| 114 } | 118 } |
| 119 |
| 120 const scoped_refptr<SSLClientSocketPool>& |
| 121 HttpNetworkSession::GetSocketPoolForSSLWithProxy( |
| 122 const HostPortPair& proxy_server) { |
| 123 SSLSocketPoolMap::const_iterator it = |
| 124 ssl_socket_pools_for_proxies_.find(proxy_server); |
| 125 if (it != ssl_socket_pools_for_proxies_.end()) |
| 126 return it->second; |
| 127 |
| 128 SSLClientSocketPool* new_pool = new SSLClientSocketPool( |
| 129 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
| 130 ssl_pool_histograms_, host_resolver_, socket_factory_, |
| 131 NULL, |
| 132 GetSocketPoolForHTTPProxy(proxy_server), |
| 133 GetSocketPoolForSOCKSProxy(proxy_server), |
| 134 net_log_); |
| 135 |
| 136 std::pair<SSLSocketPoolMap::iterator, bool> ret = |
| 137 ssl_socket_pools_for_proxies_.insert(std::make_pair(proxy_server, |
| 138 new_pool)); |
| 139 |
| 140 return ret.first->second; |
| 141 } |
| 115 | 142 |
| 116 // static | 143 // static |
| 117 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) { | 144 void HttpNetworkSession::set_max_sockets_per_group(int socket_count) { |
| 118 DCHECK_LT(0, socket_count); | 145 DCHECK_LT(0, socket_count); |
| 119 // The following is a sanity check... but we should NEVER be near this value. | 146 // The following is a sanity check... but we should NEVER be near this value. |
| 120 DCHECK_GT(100, socket_count); | 147 DCHECK_GT(100, socket_count); |
| 121 g_max_sockets_per_group = socket_count; | 148 g_max_sockets_per_group = socket_count; |
| 122 } | 149 } |
| 123 | 150 |
| 124 // static | 151 // static |
| (...skipping 10 matching lines...) Expand all Loading... |
| 135 uint16 HttpNetworkSession::fixed_https_port() { | 162 uint16 HttpNetworkSession::fixed_https_port() { |
| 136 return g_fixed_https_port; | 163 return g_fixed_https_port; |
| 137 } | 164 } |
| 138 | 165 |
| 139 // static | 166 // static |
| 140 void HttpNetworkSession::set_fixed_https_port(uint16 port) { | 167 void HttpNetworkSession::set_fixed_https_port(uint16 port) { |
| 141 g_fixed_https_port = port; | 168 g_fixed_https_port = port; |
| 142 } | 169 } |
| 143 | 170 |
| 144 } // namespace net | 171 } // namespace net |
| OLD | NEW |