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 53f7f97a053dc5ebd2625f5e9a8503adda45bb3c..ace6e0f3db6662e702dce4660c81a2993383322a 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. |
@@ -478,9 +478,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); |
} |
@@ -533,6 +545,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(); |
} |
@@ -551,6 +570,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, |
@@ -590,4 +617,10 @@ void SSLClientSocketPool::OnSSLConfigChanged() { |
Flush(); |
} |
+bool SSLClientSocketPool::CloseOneIdleConnection() { |
+ if (base_.CloseOneIdleSocket()) |
+ return true; |
+ return base_.CloseOneIdleConnectionInLayeredPool(); |
+} |
+ |
} // namespace net |