Index: net/socket/socks_client_socket_pool.cc |
diff --git a/net/socket/socks_client_socket_pool.cc b/net/socket/socks_client_socket_pool.cc |
index 4dbb4422c609476db092d6fd3dde2b0349cb3643..b2a1d92c3b8b67b12ebab55c6f3ef0ca51efbfec 100644 |
--- a/net/socket/socks_client_socket_pool.cc |
+++ b/net/socket/socks_client_socket_pool.cc |
@@ -204,9 +204,13 @@ SOCKSClientSocketPool::SOCKSClientSocketPool( |
new SOCKSConnectJobFactory(transport_pool, |
host_resolver, |
net_log)) { |
+ CHECK(transport_pool_); |
+ transport_pool_->AddLayeredPool(this); |
} |
-SOCKSClientSocketPool::~SOCKSClientSocketPool() {} |
+SOCKSClientSocketPool::~SOCKSClientSocketPool() { |
+ transport_pool_->RemoveLayeredPool(this); |
+} |
int SOCKSClientSocketPool::RequestSocket(const std::string& group_name, |
const void* socket_params, |
@@ -246,6 +250,10 @@ void SOCKSClientSocketPool::Flush() { |
base_.Flush(); |
} |
+bool SOCKSClientSocketPool::IsStalled() const { |
+ return base_.IsStalled() || transport_pool_->IsStalled(); |
+} |
+ |
void SOCKSClientSocketPool::CloseIdleSockets() { |
base_.CloseIdleSockets(); |
} |
@@ -264,6 +272,14 @@ LoadState SOCKSClientSocketPool::GetLoadState( |
return base_.GetLoadState(group_name, handle); |
} |
+void SOCKSClientSocketPool::AddLayeredPool(LayeredPool* layered_pool) { |
+ base_.AddLayeredPool(layered_pool); |
+} |
+ |
+void SOCKSClientSocketPool::RemoveLayeredPool(LayeredPool* layered_pool) { |
+ base_.RemoveLayeredPool(layered_pool); |
+} |
+ |
DictionaryValue* SOCKSClientSocketPool::GetInfoAsValue( |
const std::string& name, |
const std::string& type, |
@@ -287,4 +303,10 @@ ClientSocketPoolHistograms* SOCKSClientSocketPool::histograms() const { |
return base_.histograms(); |
}; |
+bool SOCKSClientSocketPool::CloseOneIdleConnection() { |
+ if (base_.CloseOneIdleSocket()) |
+ return true; |
+ return base_.CloseOneIdleConnectionInLayeredPool(); |
+} |
+ |
} // namespace net |