Fossil

Check-in [f4ffefe7]
Login

Check-in [f4ffefe7]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Output a warning if a client sync or clone gets back a keep-alive HTTP reply that lacks a content-length header.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f4ffefe708793b036dc1d4a3c3806cdb24de73362df532779d1a80375a6347ad
User & Date: drh 2024-04-17 14:02:19
Context
2024-04-17
17:59
Change log updates. ... (check-in: 8b805013 user: drh tags: trunk)
14:02
Output a warning if a client sync or clone gets back a keep-alive HTTP reply that lacks a content-length header. ... (check-in: f4ffefe7 user: drh tags: trunk)
13:27
Only process HTTP replies that lack a Content-Length header if the connection is set to be closed. Suggested by https://bz.apache.org/bugzilla/show_bug.cgi?id=68905. ... (check-in: 71919ad1 user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/http.c.

711
712
713
714
715
716
717



718
719
720
721
722
723
724
      iRecvLen = transport_receive(&g.url, &pReply->aData[nPrior], (int)nReq);
      nPrior += iRecvLen;
      pReply->nUsed = nPrior;
    }while( iRecvLen==nReq && nReq<0x20000000 );
    if( mHttpFlags & HTTP_VERBOSE ){
      fossil_print("Reply received: %u bytes (w/o content-length)\n", nPrior);
    }



  }
  if( isError ){
    char *z;
    int i, j;
    z = blob_str(pReply);
    for(i=j=0; z[i]; i++, j++){
      if( z[i]=='<' ){







>
>
>







711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
      iRecvLen = transport_receive(&g.url, &pReply->aData[nPrior], (int)nReq);
      nPrior += iRecvLen;
      pReply->nUsed = nPrior;
    }while( iRecvLen==nReq && nReq<0x20000000 );
    if( mHttpFlags & HTTP_VERBOSE ){
      fossil_print("Reply received: %u bytes (w/o content-length)\n", nPrior);
    }
  }else{
    assert( iLength<0 && !closeConnection );
    fossil_warning("\"content-length\" missing from %d keep-alive reply", rc);
  }
  if( isError ){
    char *z;
    int i, j;
    z = blob_str(pReply);
    for(i=j=0; z[i]; i++, j++){
      if( z[i]=='<' ){