Commit 72b1144b authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

getting only a 100 Continue response and nothing else, when talking HTTP,

is now treated as an error by libcurl
parent 348fe0e2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6,6 +6,13 @@

                                  Changelog

Daniel (7 April 2004)
- A request that sends "Expect: 100-continue" and gets nothing but a single
  100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.

- The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
  approach fully.

Daniel (6 April 2004)
- Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
  made libcurl on Windows leak a small amount of memory in each name resolve
+8 −5
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ WEB SITE
        Australia -- http://curl.planetmirror.com/
        Estonia   -- http://curl.dope-brothers.com/
        Germany   -- http://curl.mirror.at.stealer.net/
        Germany   -- http://curl.netmirror.org/
        Russia    -- http://curl.tsuren.net/
        Thailand  -- http://curl.siamu.ac.th/
        US (CA)   -- http://curl.mirror.redwire.net/
@@ -42,15 +43,17 @@ DOWNLOAD

  The official download mirror sites are:

        Australia -- http://curl.planetmirror.com/download/
        Estonia   -- http://curl.dope-brothers.com/download/
        Australia -- http://curl.planetmirror.com/download.html
        Estonia   -- http://curl.dope-brothers.com/download.html
        Germany   -- ftp://ftp.fu-berlin.de/pub/unix/network/curl/
        Germany   -- http://curl.mirror.at.stealer.net/download.html
        Germany   -- http://curl.netmirror.org/download.html
        Hongkong  -- http://www.execve.net/curl/
        Russia    -- http://curl.tsuren.net/download/
        Russia    -- http://curl.tsuren.net/download.html
        Sweden    -- ftp://ftp.sunet.se/pub/www/utilities/curl/
        Sweden    -- http://cool.haxx.se/curl/
        Thailand  -- http://curl.siamu.ac.th/download/
        US (CA)   -- http://curl.mirror.redwire.net/download/
        Thailand  -- http://curl.siamu.ac.th/download.html
        US (CA)   -- http://curl.mirror.redwire.net/download.html

CVS

+5 −1
Original line number Diff line number Diff line
@@ -13,9 +13,12 @@ This release includes the following changes:

This release includes the following bugfixes:

 o getting only a 100 Continue response and nothing else, when talking HTTP,
   is now treated as an error by libcurl
 o fixed minor memory leak in libcurl for Windows when staticly linked
 o POST/PUT using Digest/NTLM/Negotiate (including anyauth) now work better
 o --limit-rate with high speed rates is a lot more accurate now
 o --limit-rate with high speed rates is a lot more accurate now, and supports
   limiting to speeds >2GB/sec on systems with Large File support.
 o curl_strnqual.3 "refer-to" man page fix
 o fixed a minor very old progress meter final update bug
 o added checks for a working NI_WITHSCOPEID before that is used
@@ -39,6 +42,7 @@ This release includes the following bugfixes:
Other curl-related news since the previous public release:

 o PycURL 7.11.1 was released: http://pycurl.sf.net/
 o New German web mirror: http://curl.netmirror.org/

This release would not have looked like this without help, code, reports and
advice from friends like these:
+0 −7
Original line number Diff line number Diff line
@@ -23,13 +23,6 @@ may have been fixed since this was written!
  indicate that the user wants to reach the root dir (this exception SHALL
  remain even when this bug is fixed).

* 1) libcurl does a POST
  2) receives a 100-continue
  3) sends away the POST
  Now, if nothing else is returned from the server, libcurl MUST return
  CURLE_GOT_NOTHING, but it seems it returns CURLE_OK as it seems to count
  the 100-continue reply as a good enough reply.

* libcurl doesn't treat the content-length of compressed data properly, as
  it seems HTTP servers send the *uncompressed* length in that header and
  libcurl thinks of it as the *compressed* lenght. Some explanations are here:
+5 −3
Original line number Diff line number Diff line
@@ -1116,10 +1116,12 @@ CURLcode Curl_http_done(struct connectdata *conn)
    conn->bytecount = http->readbytecount + http->writebytecount;

  if(!conn->bits.retry &&
     !(http->readbytecount + conn->headerbytecount)) {
     ((http->readbytecount +
       conn->headerbytecount -
       conn->deductheadercount)) <= 0) {
    /* If this connection isn't simply closed to be retried, AND nothing was
       read from the HTTP server, this can't be right so we return an error
       here */
       read from the HTTP server (that counts), this can't be right so we
       return an error here */
    failf(data, "Empty reply from server");
    return CURLE_GOT_NOTHING;
  }
Loading