summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_socket.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-10-14 19:43:09 +0000
committerCorinna Vinschen <corinna@vinschen.de>2014-10-14 19:43:09 +0000
commit50e4b6d55770e59d6e842006b1e8d6c70a4fdc62 (patch)
tree46443a0d0c1180ef7d79274cee981d322c9f7b18 /winsup/cygwin/fhandler_socket.cc
parent1dd75c50d5727dcd9330377053dfe673d617fead (diff)
downloadcygnal-50e4b6d55770e59d6e842006b1e8d6c70a4fdc62.tar.gz
cygnal-50e4b6d55770e59d6e842006b1e8d6c70a4fdc62.tar.bz2
cygnal-50e4b6d55770e59d6e842006b1e8d6c70a4fdc62.zip
* fhandler_socket.cc (fhandler_socket::connect): Don't change state
on WSAEALREADY error. Change comment accordingly.
Diffstat (limited to 'winsup/cygwin/fhandler_socket.cc')
-rw-r--r--winsup/cygwin/fhandler_socket.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index d27b5baaf..6a13e4d77 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -1201,8 +1201,9 @@ fhandler_socket::connect (const struct sockaddr *name, int namelen)
Convert to POSIX/Linux compliant EISCONN. */
else if (err == WSAEINVAL && connect_state () == listener)
WSASetLastError (WSAEISCONN);
- /* Any other error means the connmect failed. */
- else if (connect_state () == connect_pending)
+ /* Any other error except WSAEALREADY during connect_pending means the
+ connect failed. */
+ else if (connect_state () == connect_pending && err != WSAEALREADY)
connect_state (connect_failed);
set_winsock_errno ();
}