diff options
author | Daniel Stenberg <daniel@haxx.se> | 2009-12-07 20:25:17 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2009-12-07 20:25:17 +0000 |
commit | ebe5339003df6b4247f3637c4df5272a8dd69909 (patch) | |
tree | 3d537cb712a39ab263cb95a9597388a17e4ad36b | |
parent | 95362af43c6ab478e21a777c29eb98c8e093a0b2 (diff) |
- 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.
-rw-r--r-- | CHANGES | 5 | ||||
-rw-r--r-- | RELEASE-NOTES | 1 | ||||
-rw-r--r-- | lib/http.c | 4 | ||||
-rw-r--r-- | tests/data/test510 | 1 | ||||
-rw-r--r-- | tests/data/test565 | 1 |
5 files changed, 10 insertions, 2 deletions
@@ -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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index f6b38ce45..d916d438d 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -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: diff --git a/lib/http.c b/lib/http.c index d67a001b2..6ac2d7331 100644 --- a/lib/http.c +++ b/lib/http.c @@ -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; diff --git a/tests/data/test510 b/tests/data/test510 index 360d6e96e..8313f51c3 100644 --- a/tests/data/test510 +++ b/tests/data/test510 @@ -40,6 +40,7 @@ Host: %HOSTIP:%HTTPPORT Accept: */*
Transfer-Encoding: chunked
Content-Type: application/x-www-form-urlencoded
+Expect: 100-continue
3
one
diff --git a/tests/data/test565 b/tests/data/test565 index 896db4061..838941fef 100644 --- a/tests/data/test565 +++ b/tests/data/test565 @@ -88,6 +88,7 @@ Host: 127.0.0.1:8990 Accept: */*
Transfer-Encoding: chunked
Content-Type: application/x-www-form-urlencoded
+Expect: 100-continue
3
one
|