From 68d57dc931e3567e46fddf08036a3328df8b6d2e Mon Sep 17 00:00:00 2001 From: Diego Nehab Date: Wed, 21 Jan 2004 01:28:32 +0000 Subject: Corrected connect in windows. Wasn't setting errno... --- src/wsocket.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/wsocket.c b/src/wsocket.c index c0e28d9..5ea2e56 100644 --- a/src/wsocket.c +++ b/src/wsocket.c @@ -87,8 +87,14 @@ int sock_connect(p_sock ps, SA *addr, socklen_t addr_len, int timeout) /* if select returned due to an event */ if (err > 0 ) { /* the sets tell whether it was a sucess or failure */ - if (FD_ISSET(sock,&efds) || !FD_ISSET(sock,&wfds)) return IO_ERROR; - else return IO_DONE; + if (FD_ISSET(sock,&efds) || !FD_ISSET(sock,&wfds)) { + int why; + int len = sizeof(why); + /* find out why it failed */ + getsockopt(sock, SOL_SOCKET, SO_ERROR, (char *)&why, &len); + WSASetLastError(why); + return IO_ERROR; + } else return IO_DONE; /* if nothing happened, we timed out */ } else if (err == 0) return IO_TIMEOUT; /* otherwise, I don't know what happened */ -- cgit v1.2.3-55-g6feb