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 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a | 5 // ClientSocketPoolManager manages access to all ClientSocketPools. It's a |
6 // simple container for all of them. Most importantly, it handles the lifetime | 6 // simple container for all of them. Most importantly, it handles the lifetime |
7 // and destruction order properly. | 7 // and destruction order properly. |
8 | 8 |
9 #include "net/socket/client_socket_pool_manager.h" | 9 #include "net/socket/client_socket_pool_manager.h" |
10 | 10 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 include_nested_pools)); | 48 include_nested_pools)); |
49 } | 49 } |
50 } | 50 } |
51 | 51 |
52 } // namespace | 52 } // namespace |
53 | 53 |
54 ClientSocketPoolManager::ClientSocketPoolManager( | 54 ClientSocketPoolManager::ClientSocketPoolManager( |
55 NetLog* net_log, | 55 NetLog* net_log, |
56 ClientSocketFactory* socket_factory, | 56 ClientSocketFactory* socket_factory, |
57 HostResolver* host_resolver, | 57 HostResolver* host_resolver, |
| 58 CertVerifier* cert_verifier, |
58 DnsRRResolver* dnsrr_resolver, | 59 DnsRRResolver* dnsrr_resolver, |
59 DnsCertProvenanceChecker* dns_cert_checker, | 60 DnsCertProvenanceChecker* dns_cert_checker, |
60 SSLHostInfoFactory* ssl_host_info_factory, | 61 SSLHostInfoFactory* ssl_host_info_factory, |
61 ProxyService* proxy_service, | 62 ProxyService* proxy_service, |
62 SSLConfigService* ssl_config_service) | 63 SSLConfigService* ssl_config_service) |
63 : net_log_(net_log), | 64 : net_log_(net_log), |
64 socket_factory_(socket_factory), | 65 socket_factory_(socket_factory), |
65 host_resolver_(host_resolver), | 66 host_resolver_(host_resolver), |
| 67 cert_verifier_(cert_verifier), |
66 dnsrr_resolver_(dnsrr_resolver), | 68 dnsrr_resolver_(dnsrr_resolver), |
67 dns_cert_checker_(dns_cert_checker), | 69 dns_cert_checker_(dns_cert_checker), |
68 ssl_host_info_factory_(ssl_host_info_factory), | 70 ssl_host_info_factory_(ssl_host_info_factory), |
69 proxy_service_(proxy_service), | 71 proxy_service_(proxy_service), |
70 ssl_config_service_(ssl_config_service), | 72 ssl_config_service_(ssl_config_service), |
71 tcp_pool_histograms_("TCP"), | 73 tcp_pool_histograms_("TCP"), |
72 tcp_socket_pool_(new TCPClientSocketPool( | 74 tcp_socket_pool_(new TCPClientSocketPool( |
73 g_max_sockets, g_max_sockets_per_group, | 75 g_max_sockets, g_max_sockets_per_group, |
74 &tcp_pool_histograms_, | 76 &tcp_pool_histograms_, |
75 host_resolver, | 77 host_resolver, |
76 socket_factory_, | 78 socket_factory_, |
77 net_log)), | 79 net_log)), |
78 ssl_pool_histograms_("SSL2"), | 80 ssl_pool_histograms_("SSL2"), |
79 ssl_socket_pool_(new SSLClientSocketPool( | 81 ssl_socket_pool_(new SSLClientSocketPool( |
80 g_max_sockets, g_max_sockets_per_group, | 82 g_max_sockets, g_max_sockets_per_group, |
81 &ssl_pool_histograms_, | 83 &ssl_pool_histograms_, |
82 host_resolver, | 84 host_resolver, |
| 85 cert_verifier, |
83 dnsrr_resolver, | 86 dnsrr_resolver, |
84 dns_cert_checker, | 87 dns_cert_checker, |
85 ssl_host_info_factory, | 88 ssl_host_info_factory, |
86 socket_factory, | 89 socket_factory, |
87 tcp_socket_pool_.get(), | 90 tcp_socket_pool_.get(), |
88 NULL /* no socks proxy */, | 91 NULL /* no socks proxy */, |
89 NULL /* no http proxy */, | 92 NULL /* no http proxy */, |
90 ssl_config_service, | 93 ssl_config_service, |
91 net_log)), | 94 net_log)), |
92 tcp_for_socks_pool_histograms_("TCPforSOCKS"), | 95 tcp_for_socks_pool_histograms_("TCPforSOCKS"), |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 DCHECK(tcp_https_ret.second); | 226 DCHECK(tcp_https_ret.second); |
224 | 227 |
225 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret = | 228 std::pair<SSLSocketPoolMap::iterator, bool> ssl_https_ret = |
226 ssl_socket_pools_for_https_proxies_.insert( | 229 ssl_socket_pools_for_https_proxies_.insert( |
227 std::make_pair( | 230 std::make_pair( |
228 http_proxy, | 231 http_proxy, |
229 new SSLClientSocketPool( | 232 new SSLClientSocketPool( |
230 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 233 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
231 &ssl_for_https_proxy_pool_histograms_, | 234 &ssl_for_https_proxy_pool_histograms_, |
232 host_resolver_, | 235 host_resolver_, |
| 236 cert_verifier_, |
233 dnsrr_resolver_, | 237 dnsrr_resolver_, |
234 dns_cert_checker_, | 238 dns_cert_checker_, |
235 ssl_host_info_factory_, | 239 ssl_host_info_factory_, |
236 socket_factory_, | 240 socket_factory_, |
237 tcp_https_ret.first->second /* https proxy */, | 241 tcp_https_ret.first->second /* https proxy */, |
238 NULL /* no socks proxy */, | 242 NULL /* no socks proxy */, |
239 NULL /* no http proxy */, | 243 NULL /* no http proxy */, |
240 ssl_config_service_, net_log_))); | 244 ssl_config_service_, net_log_))); |
241 DCHECK(tcp_https_ret.second); | 245 DCHECK(tcp_https_ret.second); |
242 | 246 |
(...skipping 16 matching lines...) Expand all Loading... |
259 const HostPortPair& proxy_server) { | 263 const HostPortPair& proxy_server) { |
260 SSLSocketPoolMap::const_iterator it = | 264 SSLSocketPoolMap::const_iterator it = |
261 ssl_socket_pools_for_proxies_.find(proxy_server); | 265 ssl_socket_pools_for_proxies_.find(proxy_server); |
262 if (it != ssl_socket_pools_for_proxies_.end()) | 266 if (it != ssl_socket_pools_for_proxies_.end()) |
263 return it->second; | 267 return it->second; |
264 | 268 |
265 SSLClientSocketPool* new_pool = new SSLClientSocketPool( | 269 SSLClientSocketPool* new_pool = new SSLClientSocketPool( |
266 g_max_sockets_per_proxy_server, g_max_sockets_per_group, | 270 g_max_sockets_per_proxy_server, g_max_sockets_per_group, |
267 &ssl_pool_histograms_, | 271 &ssl_pool_histograms_, |
268 host_resolver_, | 272 host_resolver_, |
| 273 cert_verifier_, |
269 dnsrr_resolver_, | 274 dnsrr_resolver_, |
270 dns_cert_checker_, | 275 dns_cert_checker_, |
271 ssl_host_info_factory_, | 276 ssl_host_info_factory_, |
272 socket_factory_, | 277 socket_factory_, |
273 NULL, /* no tcp pool, we always go through a proxy */ | 278 NULL, /* no tcp pool, we always go through a proxy */ |
274 GetSocketPoolForSOCKSProxy(proxy_server), | 279 GetSocketPoolForSOCKSProxy(proxy_server), |
275 GetSocketPoolForHTTPProxy(proxy_server), | 280 GetSocketPoolForHTTPProxy(proxy_server), |
276 ssl_config_service_, | 281 ssl_config_service_, |
277 net_log_); | 282 net_log_); |
278 | 283 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 // Third parameter is false because |ssl_socket_pools_for_proxies_| use | 337 // Third parameter is false because |ssl_socket_pools_for_proxies_| use |
333 // socket pools in |http_proxy_socket_pools_| and |socks_socket_pools_|. | 338 // socket pools in |http_proxy_socket_pools_| and |socks_socket_pools_|. |
334 AddSocketPoolsToList(list, | 339 AddSocketPoolsToList(list, |
335 ssl_socket_pools_for_proxies_, | 340 ssl_socket_pools_for_proxies_, |
336 "ssl_socket_pool_for_proxies", | 341 "ssl_socket_pool_for_proxies", |
337 false); | 342 false); |
338 return list; | 343 return list; |
339 } | 344 } |
340 | 345 |
341 } // namespace net | 346 } // namespace net |
OLD | NEW |