diff options
author | Daniel Stenberg <daniel@haxx.se> | 2006-06-09 07:08:34 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2006-06-09 07:08:34 +0000 |
commit | a05ea124b94475a86542d476977519dcb0518c59 (patch) | |
tree | e50d4c6b8d48c48f45528ff159ddadb1140bc1d4 | |
parent | 6a03ab3ad4f1835f47a8fcbc6a8b4a070541d4e6 (diff) |
oops, serious breakage in the fdset() function
-rw-r--r-- | lib/transfer.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index bb43c4da9..4aa94364b 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -1570,11 +1570,12 @@ int Curl_single_getsock(struct connectdata *conn, } if(conn->keep.keepon & KEEP_WRITE) { - if((conn->sockfd != conn->writesockfd) && - (conn->keep.keepon & KEEP_READ)) { - /* only if they are not the same socket and we had a readable one, - we increase index */ - index++; + if((conn->sockfd != conn->writesockfd) || + !(conn->keep.keepon & KEEP_READ)) { + /* only if they are not the same socket or we didn't have a readable + one, we increase index */ + if(conn->keep.keepon & KEEP_READ) + index++; /* increase index if we need two entries */ sock[index] = conn->writesockfd; } |