From 51fcb5a7bd45e561fab803b8c1e0444fbf91cdd1 Mon Sep 17 00:00:00 2001 From: Diego Nehab Date: Sun, 18 Jan 2004 00:18:56 +0000 Subject: [PATCH] Still needs testing, but "worked" in Linux. --- src/usocket.c | 5 +++-- 1 file 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) if (err > 0) { char dummy; /* try reading so that errno is set */ - if (recv(sock, &dummy, 0, 0) < 0) return IO_ERROR; - return IO_DONE; + if (recv(sock, &dummy, 0, 0) < 0 && errno != EAGAIN) + return IO_ERROR; + else return IO_DONE; /* if no event happened, there was a timeout */ } else return IO_TIMEOUT; /* otherwise connection succeeded */