From e6a4e1d6e74c7043f6c496dd0cac6a114aeefacd Mon Sep 17 00:00:00 2001 From: z3APA3A <3APA3A@3proxy.ru> Date: Thu, 3 Dec 2020 17:50:49 +0300 Subject: [PATCH] fix sockssend --- src/sockgetchar.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/sockgetchar.c b/src/sockgetchar.c index 3e9db0f..7a22667 100644 --- a/src/sockgetchar.c +++ b/src/sockgetchar.c @@ -15,15 +15,14 @@ int socksend(SOCKET sock, char * buf, int bufsize, int to){ fds.fd = sock; do { res = so._send(sock, (char *)buf + sent, bufsize - sent, 0); - if(res < 0) { - if(errno == EAGAIN || errno == EINTR) continue; - break; + if(res <= 0) { + if(errno != EAGAIN && errno != EINTR) break; fds.events = POLLOUT; + fds.fd = sock; if(conf.timetoexit) return sent; res = so._poll(&fds, 1, to*1000); - if(res < 0 && (errno == EAGAIN || errno == EINTR)) continue; - if(res < 1) break; - res = 0; + if(res < 1 && errno != EAGAIN && errno != EINTR) break; + continue; } sent += res; } while (sent < bufsize);