From 3974f30ed466c1ec8430061574f9c3530982660d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 27 Apr 2001 08:02:10 +0000 Subject: improved treatment of "Content-Length: 0", which is done by having maxdownload set to -1 when not used --- lib/transfer.c | 4 ++-- 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) diff --git a/lib/url.c b/lib/url.c index d85c61404..924f342bb 100644 --- a/lib/url.c +++ b/lib/url.c @@ -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 */ -- cgit v1.2.3