| 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
|
|
|