diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 06:14:42 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-30 06:14:42 +0000 |
commit | 83e4330078a4f27a90a87e84f5cad95e1af9bb29 (patch) | |
tree | 31b342a44cbd2c00fadd5736e187c3320de7cbb1 /net/socket/ssl_client_socket_pool.cc | |
parent | ad5e75b7b631547499ebded471f8d02b7b91e81c (diff) | |
download | chromium_src-83e4330078a4f27a90a87e84f5cad95e1af9bb29.zip chromium_src-83e4330078a4f27a90a87e84f5cad95e1af9bb29.tar.gz chromium_src-83e4330078a4f27a90a87e84f5cad95e1af9bb29.tar.bz2 |
Revert 112130 - Close idle connections / SPDY sessions when needed.
Due to the idle connection state being held by different socket pools, it's possible for one socket pool to hold an idle socket in a lower layer socket pool. From the lower level socket pool's perspective, the socket is being "actively" used. From the higher socket pool's (including SpdySession, which is more of a connection manager) perspective, the connection is idle and can be closed if we have hit a limit.
Normally this isn't a big deal, except when we have a lot of idle SPDY connections and are connecting via a proxy, so we have low connection limits through the proxy server. We address this problem by allowing lower-level socket pools to tell higher level socket pools to close a socket.
BUG=62364,92244, 105839
TEST=none
Review URL: http://codereview.chromium.org/8340012
TBR=willchan@chromium.org
Review URL: http://codereview.chromium.org/8745007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112134 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/ssl_client_socket_pool.cc')
-rw-r--r-- | net/socket/ssl_client_socket_pool.cc | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/net/socket/ssl_client_socket_pool.cc b/net/socket/ssl_client_socket_pool.cc index 4159573..a924b5a 100644 --- a/net/socket/ssl_client_socket_pool.cc +++ b/net/socket/ssl_client_socket_pool.cc @@ -476,21 +476,9 @@ 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); } @@ -543,13 +531,6 @@ 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(); } @@ -568,14 +549,6 @@ 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, @@ -615,10 +588,4 @@ void SSLClientSocketPool::OnSSLConfigChanged() { Flush(); } -bool SSLClientSocketPool::CloseOneIdleConnection() { - if (base_.CloseOneIdleSocket()) - return true; - return base_.CloseOneIdleConnectionInLayeredPool(); -} - } // namespace net |