Index: net/socket/ssl_client_socket_pool.cc |
diff --git a/net/socket/ssl_client_socket_pool.cc b/net/socket/ssl_client_socket_pool.cc |
index 0c96546bd1dff63c0df0a651ef0c150c4c3679c0..5839725db56221494f2d8e183f1555b9a8e104a8 100644 |
--- a/net/socket/ssl_client_socket_pool.cc |
+++ b/net/socket/ssl_client_socket_pool.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -479,9 +479,21 @@ SSLClientSocketPool::SSLClientSocketPool( |
ssl_config_service_(ssl_config_service) { |
if (ssl_config_service_) |
ssl_config_service_->AddObserver(this); |
+ if (transport_pool_) |
+ transport_pool_->AddLayeredPool(this); |
+ if (socks_pool_) |
+ socks_pool_->AddLayeredPool(this); |
+ if (http_proxy_pool_) |
+ http_proxy_pool_->AddLayeredPool(this); |
} |
SSLClientSocketPool::~SSLClientSocketPool() { |
+ if (http_proxy_pool_) |
+ http_proxy_pool_->RemoveLayeredPool(this); |
+ if (socks_pool_) |
+ socks_pool_->RemoveLayeredPool(this); |
+ if (transport_pool_) |
+ transport_pool_->RemoveLayeredPool(this); |
if (ssl_config_service_) |
ssl_config_service_->RemoveObserver(this); |
} |
@@ -534,6 +546,13 @@ void SSLClientSocketPool::Flush() { |
base_.Flush(); |
} |
+bool SSLClientSocketPool::IsStalled() const { |
+ return base_.IsStalled() || |
+ (transport_pool_ && transport_pool_->IsStalled()) || |
+ (socks_pool_ && socks_pool_->IsStalled()) || |
+ (http_proxy_pool_ && http_proxy_pool_->IsStalled()); |
+} |
+ |
void SSLClientSocketPool::CloseIdleSockets() { |
base_.CloseIdleSockets(); |
} |
@@ -552,6 +571,14 @@ LoadState SSLClientSocketPool::GetLoadState( |
return base_.GetLoadState(group_name, handle); |
} |
+void SSLClientSocketPool::AddLayeredPool(LayeredPool* layered_pool) { |
+ base_.AddLayeredPool(layered_pool); |
+} |
+ |
+void SSLClientSocketPool::RemoveLayeredPool(LayeredPool* layered_pool) { |
+ base_.RemoveLayeredPool(layered_pool); |
+} |
+ |
DictionaryValue* SSLClientSocketPool::GetInfoAsValue( |
const std::string& name, |
const std::string& type, |
@@ -591,4 +618,10 @@ void SSLClientSocketPool::OnSSLConfigChanged() { |
Flush(); |
} |
+bool SSLClientSocketPool::CloseOneIdleConnection() { |
+ if (base_.CloseOneIdleSocket()) |
+ return true; |
+ return base_.CloseOneIdleConnectionInLayeredPool(); |
+} |
+ |
} // namespace net |