Commit 3974f30e authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

improved treatment of "Content-Length: 0", which is done by having

maxdownload set to -1 when not used
parent 44c246db
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)
+4 −1
Original line number Diff line number Diff line
@@ -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 */