aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2004-01-18 00:18:56 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2004-01-18 00:18:56 +0000
commit51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1 (patch)
tree7059b79d7448aa9a1ae8be7cac6409543638a1d9 /src
parentc8d58798f0b0c789df5c566494112f81ac302432 (diff)
downloadluasocket-51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1.tar.gz
luasocket-51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1.tar.bz2
luasocket-51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1.zip
Still needs testing, but "worked" in Linux.
Diffstat (limited to 'src')
-rw-r--r--src/usocket.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/usocket.c b/src/usocket.c
index acac852..49ccdcb 100644
--- a/src/usocket.c
+++ b/src/usocket.c
@@ -84,8 +84,9 @@ int sock_connect(p_sock ps, SA *addr, socklen_t addr_len, int timeout)
84 if (err > 0) { 84 if (err > 0) {
85 char dummy; 85 char dummy;
86 /* try reading so that errno is set */ 86 /* try reading so that errno is set */
87 if (recv(sock, &dummy, 0, 0) < 0) return IO_ERROR; 87 if (recv(sock, &dummy, 0, 0) < 0 && errno != EAGAIN)
88 return IO_DONE; 88 return IO_ERROR;
89 else return IO_DONE;
89 /* if no event happened, there was a timeout */ 90 /* if no event happened, there was a timeout */
90 } else return IO_TIMEOUT; 91 } else return IO_TIMEOUT;
91 /* otherwise connection succeeded */ 92 /* otherwise connection succeeded */