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

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

Issue 18796003: When an idle socket is added back to a socket pool, check for stalled jobs in lower pools (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Undo somewhat tangential change Created 7 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 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 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 scoped_ptr<ClientSocketHandle> transport_socket_handle_; 153 scoped_ptr<ClientSocketHandle> transport_socket_handle_;
154 scoped_ptr<SSLClientSocket> ssl_socket_; 154 scoped_ptr<SSLClientSocket> ssl_socket_;
155 155
156 HttpResponseInfo error_response_info_; 156 HttpResponseInfo error_response_info_;
157 157
158 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob); 158 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob);
159 }; 159 };
160 160
161 class NET_EXPORT_PRIVATE SSLClientSocketPool 161 class NET_EXPORT_PRIVATE SSLClientSocketPool
162 : public ClientSocketPool, 162 : public ClientSocketPool,
163 public LayeredPool, 163 public HigherLayeredPool,
164 public SSLConfigService::Observer { 164 public SSLConfigService::Observer {
165 public: 165 public:
166 // Only the pools that will be used are required. i.e. if you never 166 // Only the pools that will be used are required. i.e. if you never
167 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL. 167 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL.
168 SSLClientSocketPool( 168 SSLClientSocketPool(
169 int max_sockets, 169 int max_sockets,
170 int max_sockets_per_group, 170 int max_sockets_per_group,
171 ClientSocketPoolHistograms* histograms, 171 ClientSocketPoolHistograms* histograms,
172 HostResolver* host_resolver, 172 HostResolver* host_resolver,
173 CertVerifier* cert_verifier, 173 CertVerifier* cert_verifier,
(...skipping 24 matching lines...) Expand all
198 198
199 virtual void CancelRequest(const std::string& group_name, 199 virtual void CancelRequest(const std::string& group_name,
200 ClientSocketHandle* handle) OVERRIDE; 200 ClientSocketHandle* handle) OVERRIDE;
201 201
202 virtual void ReleaseSocket(const std::string& group_name, 202 virtual void ReleaseSocket(const std::string& group_name,
203 StreamSocket* socket, 203 StreamSocket* socket,
204 int id) OVERRIDE; 204 int id) OVERRIDE;
205 205
206 virtual void FlushWithError(int error) OVERRIDE; 206 virtual void FlushWithError(int error) OVERRIDE;
207 207
208 virtual bool IsStalled() const OVERRIDE;
209
210 virtual void CloseIdleSockets() OVERRIDE; 208 virtual void CloseIdleSockets() OVERRIDE;
211 209
212 virtual int IdleSocketCount() const OVERRIDE; 210 virtual int IdleSocketCount() const OVERRIDE;
213 211
214 virtual int IdleSocketCountInGroup( 212 virtual int IdleSocketCountInGroup(
215 const std::string& group_name) const OVERRIDE; 213 const std::string& group_name) const OVERRIDE;
216 214
217 virtual LoadState GetLoadState( 215 virtual LoadState GetLoadState(
218 const std::string& group_name, 216 const std::string& group_name,
219 const ClientSocketHandle* handle) const OVERRIDE; 217 const ClientSocketHandle* handle) const OVERRIDE;
220 218
221 virtual void AddLayeredPool(LayeredPool* layered_pool) OVERRIDE;
222
223 virtual void RemoveLayeredPool(LayeredPool* layered_pool) OVERRIDE;
224
225 virtual base::DictionaryValue* GetInfoAsValue( 219 virtual base::DictionaryValue* GetInfoAsValue(
226 const std::string& name, 220 const std::string& name,
227 const std::string& type, 221 const std::string& type,
228 bool include_nested_pools) const OVERRIDE; 222 bool include_nested_pools) const OVERRIDE;
229 223
230 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE; 224 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
231 225
232 virtual ClientSocketPoolHistograms* histograms() const OVERRIDE; 226 virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
233 227
234 // LayeredPool implementation. 228 // LowerLayeredPool implementation.
229 virtual bool IsStalled() const OVERRIDE;
230
231 virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
232
233 virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
234
235 // HigherLayeredPool implementation.
235 virtual bool CloseOneIdleConnection() OVERRIDE; 236 virtual bool CloseOneIdleConnection() OVERRIDE;
236 237
237 private: 238 private:
238 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase; 239 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase;
239 240
240 // SSLConfigService::Observer implementation. 241 // SSLConfigService::Observer implementation.
241 242
242 // When the user changes the SSL config, we flush all idle sockets so they 243 // When the user changes the SSL config, we flush all idle sockets so they
243 // won't get re-used. 244 // won't get re-used.
244 virtual void OnSSLConfigChanged() OVERRIDE; 245 virtual void OnSSLConfigChanged() OVERRIDE;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 const scoped_refptr<SSLConfigService> ssl_config_service_; 285 const scoped_refptr<SSLConfigService> ssl_config_service_;
285 286
286 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool); 287 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool);
287 }; 288 };
288 289
289 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams); 290 REGISTER_SOCKET_PARAMS_FOR_POOL(SSLClientSocketPool, SSLSocketParams);
290 291
291 } // namespace net 292 } // namespace net
292 293
293 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 294 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698