Index: net/socket/ssl_client_socket_pool.cc |
=================================================================== |
--- net/socket/ssl_client_socket_pool.cc (revision 113335) |
+++ net/socket/ssl_client_socket_pool.cc (working copy) |
@@ -477,9 +477,21 @@ |
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); |
} |
@@ -532,6 +544,13 @@ |
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(); |
} |
@@ -550,6 +569,14 @@ |
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, |
@@ -589,4 +616,10 @@ |
Flush(); |
} |
+bool SSLClientSocketPool::CloseOneIdleConnection() { |
+ if (base_.CloseOneIdleSocket()) |
+ return true; |
+ return base_.CloseOneIdleConnectionInLayeredPool(); |
+} |
+ |
} // namespace net |