| Index: net/socket/client_socket_pool_base.cc
|
| diff --git a/net/socket/client_socket_pool_base.cc b/net/socket/client_socket_pool_base.cc
|
| index 1c79923a40057f5db9c2ef2cd9920e4eda4da43e..93bdc92e791bb17e154b2fefe6c047fc213bff69 100644
|
| --- a/net/socket/client_socket_pool_base.cc
|
| +++ b/net/socket/client_socket_pool_base.cc
|
| @@ -449,7 +449,7 @@ bool ClientSocketPoolBaseHelper::AssignIdleSocketToRequest(
|
| // the |idle_socket_it| will be set to the newest used idle socket.
|
| for (std::list<IdleSocket>::iterator it = idle_sockets->begin();
|
| it != idle_sockets->end();) {
|
| - if (!it->socket->IsConnectedAndIdle()) {
|
| + if (!it->IsReusable()) {
|
| DecrementIdleCount();
|
| delete it->socket;
|
| it = idle_sockets->erase(it);
|
| @@ -642,15 +642,19 @@ base::DictionaryValue* ClientSocketPoolBaseHelper::GetInfoAsValue(
|
| return dict;
|
| }
|
|
|
| +bool ClientSocketPoolBaseHelper::IdleSocket::IsReusable() const {
|
| + if (socket->WasEverUsed())
|
| + return socket->IsConnectedAndIdle();
|
| + return socket->IsConnected();
|
| +}
|
| +
|
| bool ClientSocketPoolBaseHelper::IdleSocket::ShouldCleanup(
|
| base::TimeTicks now,
|
| base::TimeDelta timeout) const {
|
| bool timed_out = (now - start_time) >= timeout;
|
| if (timed_out)
|
| return true;
|
| - if (socket->WasEverUsed())
|
| - return !socket->IsConnectedAndIdle();
|
| - return !socket->IsConnected();
|
| + return !IsReusable();
|
| }
|
|
|
| void ClientSocketPoolBaseHelper::CleanupIdleSockets(bool force) {
|
|
|