diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-04-27 08:02:10 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-04-27 08:02:10 +0000 |
commit | 3974f30ed466c1ec8430061574f9c3530982660d (patch) | |
tree | 9ed120cc39f2c54bc56089e451248ae9ae0f5f94 | |
parent | 44c246dbf2104258551f339eade5d8101d120a7d (diff) |
improved treatment of "Content-Length: 0", which is done by having
maxdownload set to -1 when not used
-rw-r--r-- | lib/transfer.c | 4 | ||||
-rw-r--r-- | lib/url.c | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/transfer.c b/lib/transfer.c index 52fde048f..805484bba 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -622,7 +622,7 @@ Transfer(struct connectdata *c_conn) /* If it returned OK, we just keep going */ } - if(conn->maxdownload && + if((-1 != conn->maxdownload) && (bytecount + nread >= conn->maxdownload)) { nread = conn->maxdownload - bytecount; if((signed int)nread < 0 ) /* this should be unusual */ @@ -634,7 +634,7 @@ Transfer(struct connectdata *c_conn) Curl_pgrsSetDownloadCounter(data, (double)bytecount); - if(! conn->bits.chunk) { + if(!conn->bits.chunk && nread) { /* If this is chunky transfer, it was already written */ urg = Curl_client_write(data, CLIENTWRITE_BODY, str, nread); if(urg) @@ -1364,6 +1364,9 @@ static CURLcode Connect(struct UrlData *data, conn->bits.user_passwd = data->userpwd?1:0; conn->bits.proxy_user_passwd = data->proxyuserpwd?1:0; + /* maxdownload must be -1 on init, as 0 is a valid value! */ + conn->maxdownload = -1; /* might have been used previously! */ + /* Store creation time to help future close decision making */ conn->created = Curl_tvnow(); @@ -2029,8 +2032,8 @@ static CURLcode Connect(struct UrlData *data, conn->ppath = path; /* set this too */ /* re-use init */ - conn->maxdownload = 0; /* might have been used previously! */ conn->bits.reuse = TRUE; /* yes, we're re-using here */ + conn->maxdownload = -1; /* might have been used previously! */ free(old_conn); /* we don't need this anymore */ |