From 5ddc260fc276ed76e52297b95e57b8385e0a3941 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 26 Feb 2003 12:42:25 +0000 Subject: No longer loop to read multiple times before returning back from the transfer function, as this could easily end up looping for a very long time (more or less until the whole transfer was done) and no library-using app would want that. Found thanks to a report by Kyle Sallee. --- lib/transfer.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/transfer.c b/lib/transfer.c index 0d1d563bd..e863be4e1 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -233,17 +233,16 @@ CURLcode Curl_readwrite(struct connectdata *conn, if((k->keepon & KEEP_READ) && (FD_ISSET(conn->sockfd, readfdp))) { - bool readdone = FALSE; + bool readdone = TRUE; /* This is where we loop until we have read everything there is to read or we get a EWOULDBLOCK */ do { + int buffersize = data->set.buffer_size? + data->set.buffer_size:BUFSIZE -1; - /* read! */ - result = Curl_read(conn, conn->sockfd, k->buf, - data->set.buffer_size? - data->set.buffer_size:BUFSIZE -1, - &nread); + /* receive data from the network! */ + result = Curl_read(conn, conn->sockfd, k->buf, buffersize, &nread); if(0>result) break; /* get out of loop */ -- cgit v1.2.3