mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
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.
This commit is contained in:
parent
db5c9cd4c0
commit
5ddc260fc2
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user