Index: net/socket/tcp_client_socket_win.cc |
diff --git a/net/socket/tcp_client_socket_win.cc b/net/socket/tcp_client_socket_win.cc |
index 8b192f4c2c800e773de01dcd87b7d4dd26aea76a..46a02d2416075880d29f249474434bd9e824247d 100644 |
--- a/net/socket/tcp_client_socket_win.cc |
+++ b/net/socket/tcp_client_socket_win.cc |
@@ -589,6 +589,9 @@ bool TCPClientSocketWin::IsConnected() const { |
if (socket_ == INVALID_SOCKET || waiting_connect()) |
return false; |
+ if (waiting_read_) |
+ return true; |
+ |
// Check if connection is alive. |
char c; |
int rv = recv(socket_, &c, 1, MSG_PEEK); |
@@ -606,6 +609,9 @@ bool TCPClientSocketWin::IsConnectedAndIdle() const { |
if (socket_ == INVALID_SOCKET || waiting_connect()) |
return false; |
+ if (waiting_read_) |
+ return true; |
+ |
// Check if connection is alive and we haven't received any data |
// unexpectedly. |
char c; |