diff options
Diffstat (limited to 'net/base')
| -rw-r--r-- | net/base/tcp_client_socket_win.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/base/tcp_client_socket_win.cc b/net/base/tcp_client_socket_win.cc index 1111d71..dff0391b 100644 --- a/net/base/tcp_client_socket_win.cc +++ b/net/base/tcp_client_socket_win.cc @@ -87,8 +87,11 @@ int TCPClientSocket::Connect(CompletionCallback* callback) { WSAEventSelect(socket_, overlapped_.hEvent, FD_CONNECT); if (!connect(socket_, ai->ai_addr, static_cast<int>(ai->ai_addrlen))) { - TRACE_EVENT_END("socket.connect", this, ""); // Connected without waiting! + CHECK(WaitForSingleObject(overlapped_.hEvent, 0) == WAIT_OBJECT_0); + BOOL ok = WSAResetEvent(overlapped_.hEvent); + CHECK(ok); + TRACE_EVENT_END("socket.connect", this, ""); return OK; } |
