summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2016-09-19 10:08:23 +0200
committerLinus Nordberg <linus@nordu.net>2016-09-19 10:12:08 +0200
commit46e97b761ccf654120e65f394317adbe49720bcf (patch)
treeec84fb4730b4bd88ad046c45ca914a2fd9be45f4
parentcc68bc85464a1e6587210e1becf1e8d54b1b6482 (diff)
Don't wait for _writable_ when _reading_ a TCP socket.
Like 92a0c39a for TCP. Patch by Fabian Mauchle.
-rw-r--r--tcp.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/tcp.c b/tcp.c
index 515acbf..5010bd8 100644
--- a/tcp.c
+++ b/tcp.c
@@ -135,7 +135,7 @@ int tcpconnect(struct server *server, struct timeval *when, int timeout, char *t
/* returns 0 on timeout, -1 on error and num if ok */
int tcpreadtimeout(int s, unsigned char *buf, int num, int timeout) {
int ndesc, cnt, len;
- fd_set readfds, writefds;
+ fd_set readfds;
struct timeval timer;
if (s < 0)
@@ -144,12 +144,11 @@ int tcpreadtimeout(int s, unsigned char *buf, int num, int timeout) {
for (len = 0; len < num; len += cnt) {
FD_ZERO(&readfds);
FD_SET(s, &readfds);
- writefds = readfds;
if (timeout) {
timer.tv_sec = timeout;
timer.tv_usec = 0;
}
- ndesc = select(s + 1, &readfds, &writefds, NULL, timeout ? &timer : NULL);
+ ndesc = select(s + 1, &readfds, NULL, NULL, timeout ? &timer : NULL);
if (ndesc < 1)
return ndesc;