diff options
author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-01-18 00:18:56 +0000 |
---|---|---|
committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-01-18 00:18:56 +0000 |
commit | 51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1 (patch) | |
tree | 7059b79d7448aa9a1ae8be7cac6409543638a1d9 /src | |
parent | c8d58798f0b0c789df5c566494112f81ac302432 (diff) | |
download | luasocket-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.c | 5 |
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 */ |