improved treatment of "Content-Length: 0", which is done by having
authorDaniel Stenberg <daniel@haxx.se>
Fri, 27 Apr 2001 08:02:10 +0000 (08:02 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 27 Apr 2001 08:02:10 +0000 (08:02 +0000)
maxdownload set to -1 when not used

lib/transfer.c
lib/url.c

index 52fde04..805484b 100644 (file)
@@ -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)
index d85c614..924f342 100644 (file)
--- 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 */