OSDN Git Service

* autoload.cc: Add autoload statement for `WSASetLastError'.
authorcorinna <corinna>
Tue, 7 Nov 2000 20:01:09 +0000 (20:01 +0000)
committercorinna <corinna>
Tue, 7 Nov 2000 20:01:09 +0000 (20:01 +0000)
        * net.cc (cygwin_connect): Change error code to WSAEINPROGRESS
        when connect returns WSAEWOULDBLOCK.

winsup/cygwin/ChangeLog
winsup/cygwin/autoload.cc
winsup/cygwin/net.cc

index d55b6ee..ac02b40 100644 (file)
@@ -1,3 +1,9 @@
+Tue Nov  7 20:58:00 2000  Corinna Vinschen <corinna@vinschen.de>
+
+       * autoload.cc: Add autoload statement for `WSASetLastError'.
+       * net.cc (cygwin_connect): Change error code to WSAEINPROGRESS
+       when connect returns WSAEWOULDBLOCK.
+
 Mon Nov  6 15:11:57 2000  Christopher Faylor <cgf@cygnus.com>
 
        * dcrt0.cc (sigthread::init): Reinstitute sigthread lock as a critical
index 6f9344a..e82aa5a 100644 (file)
@@ -275,6 +275,7 @@ LoadDLLinit (wsock32)
 LoadDLLfunc (WSAAsyncSelect, 16, wsock32)
 LoadDLLfunc (WSACleanup, 0, wsock32)
 LoadDLLfunc (WSAGetLastError, 0, wsock32)
+LoadDLLfunc (WSASetLastError, 4, wsock32)
 LoadDLLfunc (WSAStartup, 8, wsock32)
 LoadDLLfunc (__WSAFDIsSet, 8, wsock32)
 LoadDLLfunc (accept, 12, wsock32)
index 9f0816b..31c4029 100644 (file)
@@ -600,7 +600,14 @@ cygwin_connect (int fd,
     {
       res = connect (sock->get_socket (), (sockaddr *) &sin, namelen);
       if (res)
-       set_winsock_errno ();
+        {
+         /* Special handling for connect to return the correct error code
+            when called to early on a non-blocking socket. */
+         if (WSAGetLastError () == WSAEWOULDBLOCK)
+           WSASetLastError (WSAEINPROGRESS);
+
+         set_winsock_errno ();
+        }
     }
   return res;
 }