Chromium Code Reviews| 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 7e5c24fc931f7044fb7bfc8fae845c4c65aac3ab..5b116e6e455c2391cc68171e121a3623c9533519 100644 | 
| --- a/net/socket/client_socket_pool_base.cc | 
| +++ b/net/socket/client_socket_pool_base.cc | 
| @@ -257,6 +257,7 @@ int ClientSocketPoolBaseHelper::RequestSocketInternal( | 
| group.jobs.insert(job); | 
| } else { | 
| LogBoundConnectJobToRequest(connect_job->net_log().source(), request); | 
| + connect_job->GetAdditionalErrorState(handle); | 
| ClientSocket* error_socket = connect_job->ReleaseSocket(); | 
| if (error_socket) { | 
| HandOutSocket(error_socket, false /* not reused */, handle, | 
| @@ -592,10 +593,10 @@ void ClientSocketPoolBaseHelper::OnConnectJobComplete( | 
| scoped_ptr<ClientSocket> socket(job->ReleaseSocket()); | 
| BoundNetLog job_log = job->net_log(); | 
| - RemoveConnectJob(job, &group); | 
| if (result == OK) { | 
| DCHECK(socket.get()); | 
| + RemoveConnectJob(job, &group); | 
| if (!group.pending_requests.empty()) { | 
| scoped_ptr<const Request> r(RemoveRequestFromQueue( | 
| group.pending_requests.begin(), &group.pending_requests)); | 
| @@ -617,6 +618,8 @@ void ClientSocketPoolBaseHelper::OnConnectJobComplete( | 
| scoped_ptr<const Request> r(RemoveRequestFromQueue( | 
| group.pending_requests.begin(), &group.pending_requests)); | 
| LogBoundConnectJobToRequest(job_log.source(), r.get()); | 
| + job->GetAdditionalErrorState(r->handle()); | 
| + RemoveConnectJob(job, &group); | 
| if (socket.get()) { | 
| handed_out_socket = true; | 
| HandOutSocket(socket.release(), false /* unused socket */, r->handle(), | 
| @@ -624,7 +627,15 @@ void ClientSocketPoolBaseHelper::OnConnectJobComplete( | 
| } | 
| r->net_log().EndEvent(NetLog::TYPE_SOCKET_POOL, | 
| new NetLogIntegerParameter("net_error", result)); | 
| + if (socket.get()) { | 
| + handed_out_socket = true; | 
| + HandOutSocket( | 
| + socket.release(), false /* unused socket */, r->handle(), | 
| + base::TimeDelta(), &group, r->net_log()); | 
| 
 
willchan no longer on Chromium
2010/07/15 00:52:24
Is this a bad merge?  Did this get copied twice?
 
 | 
| + } | 
| r->callback()->Run(result); | 
| + } else { | 
| + RemoveConnectJob(job, &group); | 
| } | 
| if (!handed_out_socket) | 
| OnAvailableSocketSlot(group_name, MayHaveStalledGroups()); |