mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs and
PUTs even when told to use HTTP 1.0, which is not correct.
This commit is contained in:
parent
e35c7dcd72
commit
723bfe42e7
4
CHANGES
4
CHANGES
@ -6,6 +6,10 @@
|
||||
|
||||
Changelog
|
||||
|
||||
Daniel (23 August 2004)
|
||||
- Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs
|
||||
even when told to use HTTP 1.0, which is not correct.
|
||||
|
||||
Daniel (20 August 2004)
|
||||
- Alexander Krasnostavsky made the write callback get called even when a zero
|
||||
byte file is downloaded.
|
||||
|
30
lib/http.c
30
lib/http.c
@ -1765,10 +1765,12 @@ CURLcode Curl_http(struct connectdata *conn)
|
||||
return result;
|
||||
}
|
||||
|
||||
if(!checkheaders(data, "Expect:")) {
|
||||
/* if not disabled explicitly we add a Expect: 100-continue
|
||||
to the headers which actually speeds up post operations (as
|
||||
there is one packet coming back from the web server) */
|
||||
if((data->set.httpversion != CURL_HTTP_VERSION_1_0) &&
|
||||
!checkheaders(data, "Expect:")) {
|
||||
/* if not doing HTTP 1.0 or disabled explicitly, we add a Expect:
|
||||
100-continue to the headers which actually speeds up post
|
||||
operations (as there is one packet coming back from the web
|
||||
server) */
|
||||
result = add_bufferf(req_buffer,
|
||||
"Expect: 100-continue\r\n");
|
||||
if(result)
|
||||
@ -1832,10 +1834,12 @@ CURLcode Curl_http(struct connectdata *conn)
|
||||
return result;
|
||||
}
|
||||
|
||||
if(!checkheaders(data, "Expect:")) {
|
||||
/* if not disabled explicitly we add a Expect: 100-continue
|
||||
to the headers which actually speeds up post operations (as
|
||||
there is one packet coming back from the web server) */
|
||||
if((data->set.httpversion != CURL_HTTP_VERSION_1_0) &&
|
||||
!checkheaders(data, "Expect:")) {
|
||||
/* if not HTTP 1.0 or disabled explicitly, we add a Expect:
|
||||
100-continue to the headers which actually speeds up post
|
||||
operations (as there is one packet coming back from the web
|
||||
server) */
|
||||
result = add_bufferf(req_buffer,
|
||||
"Expect: 100-continue\r\n");
|
||||
if(result)
|
||||
@ -1945,10 +1949,12 @@ CURLcode Curl_http(struct connectdata *conn)
|
||||
/* set the upload size to the progress meter */
|
||||
Curl_pgrsSetUploadSize(data, http->postsize);
|
||||
|
||||
if(!checkheaders(data, "Expect:")) {
|
||||
/* if not disabled explicitly we add a Expect: 100-continue to the
|
||||
headers which actually speeds up post operations (as there is
|
||||
one packet coming back from the web server) */
|
||||
if((data->set.httpversion != CURL_HTTP_VERSION_1_0) &&
|
||||
!checkheaders(data, "Expect:")) {
|
||||
/* if not HTTP 1.0 or disabled explicitly, we add a Expect:
|
||||
100-continue to the headers which actually speeds up post
|
||||
operations (as there is one packet coming back from the web
|
||||
server) */
|
||||
add_bufferf(req_buffer,
|
||||
"Expect: 100-continue\r\n");
|
||||
data->set.expect100header = TRUE;
|
||||
|
@ -25,7 +25,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
|
||||
test158 test159 test511 test160 test161 test162 test163 test164 \
|
||||
test512 test165 test166 test167 test168 test169 test170 test171 \
|
||||
test172 test204 test205 test173 test174 test175 test176 test177 \
|
||||
test513 test514 test178 test179
|
||||
test513 test514 test178 test179 test180 test181
|
||||
|
||||
# The following tests have been removed from the dist since they no longer
|
||||
# work. We need to fix the test suite's FTPS server first, then bring them
|
||||
|
58
tests/data/test180
Normal file
58
tests/data/test180
Normal file
@ -0,0 +1,58 @@
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
blablabla
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP 1.0 PUT
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HOSTPORT/we/want/180 -T log/test180.txt --http1.0
|
||||
</command>
|
||||
<file name="log/test180.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</file>
|
||||
</reply>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /we/want/180 HTTP/1.0
|
||||
Host: 127.0.0.1:8999
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Content-Length: 78
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
PUT
|
||||
feature
|
||||
</protocol>
|
||||
</verify>
|
59
tests/data/test181
Normal file
59
tests/data/test181
Normal file
@ -0,0 +1,59 @@
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
|
||||
blablabla
|
||||
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
<client>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP 1.0 POST
|
||||
</name>
|
||||
<command>
|
||||
http://%HOSTIP:%HOSTPORT/we/want/181 --data-binary @log/test181.txt --http1.0
|
||||
</command>
|
||||
<file name="log/test181.txt">
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
POST
|
||||
feature
|
||||
</file>
|
||||
</reply>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
POST /we/want/181 HTTP/1.0
|
||||
Host: 127.0.0.1:8999
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Content-Length: 79
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
Weird
|
||||
file
|
||||
to
|
||||
upload
|
||||
for
|
||||
testing
|
||||
the
|
||||
POST
|
||||
feature
|
||||
</protocol>
|
||||
</verify>
|
Loading…
Reference in New Issue
Block a user