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

Side by Side Diff: net/socket/ssl_client_socket_pool.h

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 5 #ifndef NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
6 #define NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 6 #define NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/memory/ref_counted.h" 10 #include "base/memory/ref_counted.h"
(...skipping 24 matching lines...) Expand all
35 class TransportSecurityState; 35 class TransportSecurityState;
36 class TransportSocketParams; 36 class TransportSocketParams;
37 37
38 class NET_EXPORT_PRIVATE SSLSocketParams 38 class NET_EXPORT_PRIVATE SSLSocketParams
39 : public base::RefCounted<SSLSocketParams> { 39 : public base::RefCounted<SSLSocketParams> {
40 public: 40 public:
41 enum ConnectionType { DIRECT, SOCKS_PROXY, HTTP_PROXY }; 41 enum ConnectionType { DIRECT, SOCKS_PROXY, HTTP_PROXY };
42 42
43 // Exactly one of |direct_params|, |socks_proxy_params|, and 43 // Exactly one of |direct_params|, |socks_proxy_params|, and
44 // |http_proxy_params| must be non-NULL. 44 // |http_proxy_params| must be non-NULL.
45 SSLSocketParams( 45 SSLSocketParams(const scoped_refptr<TransportSocketParams>& direct_params,
46 const scoped_refptr<TransportSocketParams>& direct_params, 46 const scoped_refptr<SOCKSSocketParams>& socks_proxy_params,
47 const scoped_refptr<SOCKSSocketParams>& socks_proxy_params, 47 const scoped_refptr<HttpProxySocketParams>& http_proxy_params,
48 const scoped_refptr<HttpProxySocketParams>& http_proxy_params, 48 const HostPortPair& host_and_port,
49 const HostPortPair& host_and_port, 49 const SSLConfig& ssl_config,
50 const SSLConfig& ssl_config, 50 PrivacyMode privacy_mode,
51 PrivacyMode privacy_mode, 51 int load_flags,
52 int load_flags, 52 bool force_spdy_over_ssl,
53 bool force_spdy_over_ssl, 53 bool want_spdy_over_npn);
54 bool want_spdy_over_npn);
55 54
56 // Returns the type of the underlying connection. 55 // Returns the type of the underlying connection.
57 ConnectionType GetConnectionType() const; 56 ConnectionType GetConnectionType() const;
58 57
59 // Must be called only when GetConnectionType() returns DIRECT. 58 // Must be called only when GetConnectionType() returns DIRECT.
60 const scoped_refptr<TransportSocketParams>& 59 const scoped_refptr<TransportSocketParams>& GetDirectConnectionParams() const;
61 GetDirectConnectionParams() const;
62 60
63 // Must be called only when GetConnectionType() returns SOCKS_PROXY. 61 // Must be called only when GetConnectionType() returns SOCKS_PROXY.
64 const scoped_refptr<SOCKSSocketParams>& 62 const scoped_refptr<SOCKSSocketParams>& GetSocksProxyConnectionParams() const;
65 GetSocksProxyConnectionParams() const;
66 63
67 // Must be called only when GetConnectionType() returns HTTP_PROXY. 64 // Must be called only when GetConnectionType() returns HTTP_PROXY.
68 const scoped_refptr<HttpProxySocketParams>& 65 const scoped_refptr<HttpProxySocketParams>& GetHttpProxyConnectionParams()
69 GetHttpProxyConnectionParams() const; 66 const;
70 67
71 const HostPortPair& host_and_port() const { return host_and_port_; } 68 const HostPortPair& host_and_port() const { return host_and_port_; }
72 const SSLConfig& ssl_config() const { return ssl_config_; } 69 const SSLConfig& ssl_config() const { return ssl_config_; }
73 PrivacyMode privacy_mode() const { return privacy_mode_; } 70 PrivacyMode privacy_mode() const { return privacy_mode_; }
74 int load_flags() const { return load_flags_; } 71 int load_flags() const { return load_flags_; }
75 bool force_spdy_over_ssl() const { return force_spdy_over_ssl_; } 72 bool force_spdy_over_ssl() const { return force_spdy_over_ssl_; }
76 bool want_spdy_over_npn() const { return want_spdy_over_npn_; } 73 bool want_spdy_over_npn() const { return want_spdy_over_npn_; }
77 bool ignore_limits() const { return ignore_limits_; } 74 bool ignore_limits() const { return ignore_limits_; }
78 75
79 private: 76 private:
(...skipping 11 matching lines...) Expand all
91 const bool want_spdy_over_npn_; 88 const bool want_spdy_over_npn_;
92 bool ignore_limits_; 89 bool ignore_limits_;
93 90
94 DISALLOW_COPY_AND_ASSIGN(SSLSocketParams); 91 DISALLOW_COPY_AND_ASSIGN(SSLSocketParams);
95 }; 92 };
96 93
97 // SSLConnectJob handles the SSL handshake after setting up the underlying 94 // SSLConnectJob handles the SSL handshake after setting up the underlying
98 // connection as specified in the params. 95 // connection as specified in the params.
99 class SSLConnectJob : public ConnectJob { 96 class SSLConnectJob : public ConnectJob {
100 public: 97 public:
101 SSLConnectJob( 98 SSLConnectJob(const std::string& group_name,
102 const std::string& group_name, 99 RequestPriority priority,
103 RequestPriority priority, 100 const scoped_refptr<SSLSocketParams>& params,
104 const scoped_refptr<SSLSocketParams>& params, 101 const base::TimeDelta& timeout_duration,
105 const base::TimeDelta& timeout_duration, 102 TransportClientSocketPool* transport_pool,
106 TransportClientSocketPool* transport_pool, 103 SOCKSClientSocketPool* socks_pool,
107 SOCKSClientSocketPool* socks_pool, 104 HttpProxyClientSocketPool* http_proxy_pool,
108 HttpProxyClientSocketPool* http_proxy_pool, 105 ClientSocketFactory* client_socket_factory,
109 ClientSocketFactory* client_socket_factory, 106 HostResolver* host_resolver,
110 HostResolver* host_resolver, 107 const SSLClientSocketContext& context,
111 const SSLClientSocketContext& context, 108 Delegate* delegate,
112 Delegate* delegate, 109 NetLog* net_log);
113 NetLog* net_log);
114 virtual ~SSLConnectJob(); 110 virtual ~SSLConnectJob();
115 111
116 // ConnectJob methods. 112 // ConnectJob methods.
117 virtual LoadState GetLoadState() const OVERRIDE; 113 virtual LoadState GetLoadState() const OVERRIDE;
118 114
119 virtual void GetAdditionalErrorState(ClientSocketHandle * handle) OVERRIDE; 115 virtual void GetAdditionalErrorState(ClientSocketHandle* handle) OVERRIDE;
120 116
121 private: 117 private:
122 enum State { 118 enum State {
123 STATE_TRANSPORT_CONNECT, 119 STATE_TRANSPORT_CONNECT,
124 STATE_TRANSPORT_CONNECT_COMPLETE, 120 STATE_TRANSPORT_CONNECT_COMPLETE,
125 STATE_SOCKS_CONNECT, 121 STATE_SOCKS_CONNECT,
126 STATE_SOCKS_CONNECT_COMPLETE, 122 STATE_SOCKS_CONNECT_COMPLETE,
127 STATE_TUNNEL_CONNECT, 123 STATE_TUNNEL_CONNECT,
128 STATE_TUNNEL_CONNECT_COMPLETE, 124 STATE_TUNNEL_CONNECT_COMPLETE,
129 STATE_SSL_CONNECT, 125 STATE_SSL_CONNECT,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 171
176 class NET_EXPORT_PRIVATE SSLClientSocketPool 172 class NET_EXPORT_PRIVATE SSLClientSocketPool
177 : public ClientSocketPool, 173 : public ClientSocketPool,
178 public HigherLayeredPool, 174 public HigherLayeredPool,
179 public SSLConfigService::Observer { 175 public SSLConfigService::Observer {
180 public: 176 public:
181 typedef SSLSocketParams SocketParams; 177 typedef SSLSocketParams SocketParams;
182 178
183 // Only the pools that will be used are required. i.e. if you never 179 // Only the pools that will be used are required. i.e. if you never
184 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL. 180 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL.
185 SSLClientSocketPool( 181 SSLClientSocketPool(int max_sockets,
186 int max_sockets, 182 int max_sockets_per_group,
187 int max_sockets_per_group, 183 ClientSocketPoolHistograms* histograms,
188 ClientSocketPoolHistograms* histograms, 184 HostResolver* host_resolver,
189 HostResolver* host_resolver, 185 CertVerifier* cert_verifier,
190 CertVerifier* cert_verifier, 186 ServerBoundCertService* server_bound_cert_service,
191 ServerBoundCertService* server_bound_cert_service, 187 TransportSecurityState* transport_security_state,
192 TransportSecurityState* transport_security_state, 188 CTVerifier* cert_transparency_verifier,
193 CTVerifier* cert_transparency_verifier, 189 const std::string& ssl_session_cache_shard,
194 const std::string& ssl_session_cache_shard, 190 ClientSocketFactory* client_socket_factory,
195 ClientSocketFactory* client_socket_factory, 191 TransportClientSocketPool* transport_pool,
196 TransportClientSocketPool* transport_pool, 192 SOCKSClientSocketPool* socks_pool,
197 SOCKSClientSocketPool* socks_pool, 193 HttpProxyClientSocketPool* http_proxy_pool,
198 HttpProxyClientSocketPool* http_proxy_pool, 194 SSLConfigService* ssl_config_service,
199 SSLConfigService* ssl_config_service, 195 NetLog* net_log);
200 NetLog* net_log);
201 196
202 virtual ~SSLClientSocketPool(); 197 virtual ~SSLClientSocketPool();
203 198
204 // ClientSocketPool implementation. 199 // ClientSocketPool implementation.
205 virtual int RequestSocket(const std::string& group_name, 200 virtual int RequestSocket(const std::string& group_name,
206 const void* connect_params, 201 const void* connect_params,
207 RequestPriority priority, 202 RequestPriority priority,
208 ClientSocketHandle* handle, 203 ClientSocketHandle* handle,
209 const CompletionCallback& callback, 204 const CompletionCallback& callback,
210 const BoundNetLog& net_log) OVERRIDE; 205 const BoundNetLog& net_log) OVERRIDE;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase; 252 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase;
258 253
259 // SSLConfigService::Observer implementation. 254 // SSLConfigService::Observer implementation.
260 255
261 // When the user changes the SSL config, we flush all idle sockets so they 256 // When the user changes the SSL config, we flush all idle sockets so they
262 // won't get re-used. 257 // won't get re-used.
263 virtual void OnSSLConfigChanged() OVERRIDE; 258 virtual void OnSSLConfigChanged() OVERRIDE;
264 259
265 class SSLConnectJobFactory : public PoolBase::ConnectJobFactory { 260 class SSLConnectJobFactory : public PoolBase::ConnectJobFactory {
266 public: 261 public:
267 SSLConnectJobFactory( 262 SSLConnectJobFactory(TransportClientSocketPool* transport_pool,
268 TransportClientSocketPool* transport_pool, 263 SOCKSClientSocketPool* socks_pool,
269 SOCKSClientSocketPool* socks_pool, 264 HttpProxyClientSocketPool* http_proxy_pool,
270 HttpProxyClientSocketPool* http_proxy_pool, 265 ClientSocketFactory* client_socket_factory,
271 ClientSocketFactory* client_socket_factory, 266 HostResolver* host_resolver,
272 HostResolver* host_resolver, 267 const SSLClientSocketContext& context,
273 const SSLClientSocketContext& context, 268 NetLog* net_log);
274 NetLog* net_log);
275 269
276 virtual ~SSLConnectJobFactory() {} 270 virtual ~SSLConnectJobFactory() {}
277 271
278 // ClientSocketPoolBase::ConnectJobFactory methods. 272 // ClientSocketPoolBase::ConnectJobFactory methods.
279 virtual scoped_ptr<ConnectJob> NewConnectJob( 273 virtual scoped_ptr<ConnectJob> NewConnectJob(
280 const std::string& group_name, 274 const std::string& group_name,
281 const PoolBase::Request& request, 275 const PoolBase::Request& request,
282 ConnectJob::Delegate* delegate) const OVERRIDE; 276 ConnectJob::Delegate* delegate) const OVERRIDE;
283 277
284 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE; 278 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
(...skipping 16 matching lines...) Expand all
301 HttpProxyClientSocketPool* const http_proxy_pool_; 295 HttpProxyClientSocketPool* const http_proxy_pool_;
302 PoolBase base_; 296 PoolBase base_;
303 const scoped_refptr<SSLConfigService> ssl_config_service_; 297 const scoped_refptr<SSLConfigService> ssl_config_service_;
304 298
305 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool); 299 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool);
306 }; 300 };
307 301
308 } // namespace net 302 } // namespace net
309 303
310 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 304 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698