- Martin Storsjo made libcurl use the Expect: 100-continue header for posts
authorDaniel Stenberg <daniel@haxx.se>
Mon, 7 Dec 2009 20:25:17 +0000 (20:25 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 7 Dec 2009 20:25:17 +0000 (20:25 +0000)
  with unknown size. Previously it was only used for posts with a known size
  larger than 1024 bytes.

CHANGES
RELEASE-NOTES
lib/http.c
tests/data/test510
tests/data/test565

diff --git a/CHANGES b/CHANGES
index 92b7375..bb05cb9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,11 @@
                                   Changelog
 
 
+Daniel Stenberg (7 Dec 2009)
+- Martin Storsjo made libcurl use the Expect: 100-continue header for posts
+  with unknown size. Previously it was only used for posts with a known size
+  larger than 1024 bytes.
+
 Daniel Stenberg (1 Dec 2009)
 - If the Expect: 100-continue header has been set by the application through
   curl_easy_setopt with CURLOPT_HTTPHEADER, the library should set
index f6b38ce..d916d43 100644 (file)
@@ -12,6 +12,7 @@ This release includes the following changes:
  o support SSL_FILETYPE_ENGINE for client certificate
  o curl-config can now show the arguments used when building curl
  o non-blocking TFTP
+ o send Expect: 100-continue for POSTs with unknown sizes
 
 This release includes the following bugfixes:
 
index d67a001..6ac2d73 100644 (file)
@@ -2815,7 +2815,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
       /* figure out the size of the postfields */
       postsize = (data->set.postfieldsize != -1)?
         data->set.postfieldsize:
-        (data->set.postfields? (curl_off_t)strlen(data->set.postfields):0);
+        (data->set.postfields? (curl_off_t)strlen(data->set.postfields):-1);
     }
     if(!data->req.upload_chunky) {
       /* We only set Content-Length and allow a custom Content-Length if
@@ -2849,7 +2849,7 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
       data->state.expect100header =
         Curl_compareheader(ptr, "Expect:", "100-continue");
     }
-    else if(postsize > TINY_INITIAL_POST_SIZE) {
+    else if(postsize > TINY_INITIAL_POST_SIZE || postsize < 0) {
       result = expect100(data, conn, req_buffer);
       if(result)
         return result;
index 360d6e9..8313f51 100644 (file)
@@ -40,6 +40,7 @@ Host: %HOSTIP:%HTTPPORT
 Accept: */*\r
 Transfer-Encoding: chunked\r
 Content-Type: application/x-www-form-urlencoded\r
+Expect: 100-continue\r
 \r
 3\r
 one\r
index 896db40..838941f 100644 (file)
@@ -88,6 +88,7 @@ Host: 127.0.0.1:8990
 Accept: */*\r
 Transfer-Encoding: chunked\r
 Content-Type: application/x-www-form-urlencoded\r
+Expect: 100-continue\r
 \r
 3\r
 one\r