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

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: Update comments Created 7 years, 4 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
« no previous file with comments | « net/socket/socks_client_socket_pool.cc ('k') | net/socket/ssl_client_socket_pool.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 scoped_ptr<ClientSocketHandle> transport_socket_handle_; 166 scoped_ptr<ClientSocketHandle> transport_socket_handle_;
167 scoped_ptr<SSLClientSocket> ssl_socket_; 167 scoped_ptr<SSLClientSocket> ssl_socket_;
168 168
169 HttpResponseInfo error_response_info_; 169 HttpResponseInfo error_response_info_;
170 170
171 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob); 171 DISALLOW_COPY_AND_ASSIGN(SSLConnectJob);
172 }; 172 };
173 173
174 class NET_EXPORT_PRIVATE SSLClientSocketPool 174 class NET_EXPORT_PRIVATE SSLClientSocketPool
175 : public ClientSocketPool, 175 : public ClientSocketPool,
176 public LayeredPool, 176 public HigherLayeredPool,
177 public SSLConfigService::Observer { 177 public SSLConfigService::Observer {
178 public: 178 public:
179 typedef SSLSocketParams SocketParams; 179 typedef SSLSocketParams SocketParams;
180 180
181 // Only the pools that will be used are required. i.e. if you never 181 // Only the pools that will be used are required. i.e. if you never
182 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL. 182 // try to create an SSL over SOCKS socket, |socks_pool| may be NULL.
183 SSLClientSocketPool( 183 SSLClientSocketPool(
184 int max_sockets, 184 int max_sockets,
185 int max_sockets_per_group, 185 int max_sockets_per_group,
186 ClientSocketPoolHistograms* histograms, 186 ClientSocketPoolHistograms* histograms,
(...skipping 26 matching lines...) Expand all
213 213
214 virtual void CancelRequest(const std::string& group_name, 214 virtual void CancelRequest(const std::string& group_name,
215 ClientSocketHandle* handle) OVERRIDE; 215 ClientSocketHandle* handle) OVERRIDE;
216 216
217 virtual void ReleaseSocket(const std::string& group_name, 217 virtual void ReleaseSocket(const std::string& group_name,
218 scoped_ptr<StreamSocket> socket, 218 scoped_ptr<StreamSocket> socket,
219 int id) OVERRIDE; 219 int id) OVERRIDE;
220 220
221 virtual void FlushWithError(int error) OVERRIDE; 221 virtual void FlushWithError(int error) OVERRIDE;
222 222
223 virtual bool IsStalled() const OVERRIDE;
224
225 virtual void CloseIdleSockets() OVERRIDE; 223 virtual void CloseIdleSockets() OVERRIDE;
226 224
227 virtual int IdleSocketCount() const OVERRIDE; 225 virtual int IdleSocketCount() const OVERRIDE;
228 226
229 virtual int IdleSocketCountInGroup( 227 virtual int IdleSocketCountInGroup(
230 const std::string& group_name) const OVERRIDE; 228 const std::string& group_name) const OVERRIDE;
231 229
232 virtual LoadState GetLoadState( 230 virtual LoadState GetLoadState(
233 const std::string& group_name, 231 const std::string& group_name,
234 const ClientSocketHandle* handle) const OVERRIDE; 232 const ClientSocketHandle* handle) const OVERRIDE;
235 233
236 virtual void AddLayeredPool(LayeredPool* layered_pool) OVERRIDE;
237
238 virtual void RemoveLayeredPool(LayeredPool* layered_pool) OVERRIDE;
239
240 virtual base::DictionaryValue* GetInfoAsValue( 234 virtual base::DictionaryValue* GetInfoAsValue(
241 const std::string& name, 235 const std::string& name,
242 const std::string& type, 236 const std::string& type,
243 bool include_nested_pools) const OVERRIDE; 237 bool include_nested_pools) const OVERRIDE;
244 238
245 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE; 239 virtual base::TimeDelta ConnectionTimeout() const OVERRIDE;
246 240
247 virtual ClientSocketPoolHistograms* histograms() const OVERRIDE; 241 virtual ClientSocketPoolHistograms* histograms() const OVERRIDE;
248 242
249 // LayeredPool implementation. 243 // LowerLayeredPool implementation.
244 virtual bool IsStalled() const OVERRIDE;
245
246 virtual void AddHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
247
248 virtual void RemoveHigherLayeredPool(HigherLayeredPool* higher_pool) OVERRIDE;
249
250 // HigherLayeredPool implementation.
250 virtual bool CloseOneIdleConnection() OVERRIDE; 251 virtual bool CloseOneIdleConnection() OVERRIDE;
251 252
252 private: 253 private:
253 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase; 254 typedef ClientSocketPoolBase<SSLSocketParams> PoolBase;
254 255
255 // SSLConfigService::Observer implementation. 256 // SSLConfigService::Observer implementation.
256 257
257 // When the user changes the SSL config, we flush all idle sockets so they 258 // When the user changes the SSL config, we flush all idle sockets so they
258 // won't get re-used. 259 // won't get re-used.
259 virtual void OnSSLConfigChanged() OVERRIDE; 260 virtual void OnSSLConfigChanged() OVERRIDE;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 HttpProxyClientSocketPool* const http_proxy_pool_; 298 HttpProxyClientSocketPool* const http_proxy_pool_;
298 PoolBase base_; 299 PoolBase base_;
299 const scoped_refptr<SSLConfigService> ssl_config_service_; 300 const scoped_refptr<SSLConfigService> ssl_config_service_;
300 301
301 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool); 302 DISALLOW_COPY_AND_ASSIGN(SSLClientSocketPool);
302 }; 303 };
303 304
304 } // namespace net 305 } // namespace net
305 306
306 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_ 307 #endif // NET_SOCKET_SSL_CLIENT_SOCKET_POOL_H_
OLDNEW
« no previous file with comments | « net/socket/socks_client_socket_pool.cc ('k') | net/socket/ssl_client_socket_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698