From: Daniel Stenberg Date: Mon, 7 Dec 2009 20:25:17 +0000 (+0000) Subject: - Martin Storsjo made libcurl use the Expect: 100-continue header for posts X-Git-Tag: curl-7_20_0~285 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ebe5339003df6b4247f3637c4df5272a8dd69909;p=thirdparty%2Fcurl.git - 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. --- diff --git a/CHANGES b/CHANGES index 92b7375895..bb05cb93f3 100644 --- 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 diff --git a/RELEASE-NOTES b/RELEASE-NOTES index f6b38ce450..d916d438d6 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 d67a001b26..6ac2d73310 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 360d6e96ee..8313f51c35 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 896db4061b..838941fefb 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