mirror of
https://github.com/curl/curl.git
synced 2026-08-05 15:06:17 +03:00
http: deal with partial CONNECT sends
Also added 'CURL_SMALLSENDS' to make Curl_write() send short packets, which helped verifying this even more. Add test 363 to verify. Reported-by: ustcqidi on github Fixes #6950 Closes #7024
This commit is contained in:
parent
63813a0325
commit
51c0ebcff2
8 changed files with 213 additions and 54 deletions
|
|
@ -60,7 +60,7 @@ test325 test326 test327 test328 test329 test330 test331 test332 test333 \
|
|||
test334 test335 test336 test337 test338 test339 test340 test341 test342 \
|
||||
test343 test344 test345 test346 test347 test348 test349 test350 test351 \
|
||||
test352 test353 test354 test355 test356 test357 test358 test359 test360 \
|
||||
test361 test362 \
|
||||
test361 test362 test363 \
|
||||
\
|
||||
test393 test394 test395 test396 test397 \
|
||||
\
|
||||
|
|
|
|||
90
tests/data/test363
Normal file
90
tests/data/test363
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP POST
|
||||
HTTP CONNECT
|
||||
proxytunnel
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Content-Length: 9
|
||||
|
||||
contents
|
||||
</data>
|
||||
<connect>
|
||||
HTTP/1.1 200 Mighty fine indeed
|
||||
|
||||
</connect>
|
||||
<datacheck>
|
||||
HTTP/1.1 200 Mighty fine indeed
|
||||
|
||||
HTTP/1.1 200 OK
|
||||
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Content-Type: text/html
|
||||
Funny-head: yesyes
|
||||
Content-Length: 9
|
||||
|
||||
contents
|
||||
</datacheck>
|
||||
</reply>
|
||||
|
||||
#
|
||||
# Client-side
|
||||
<client>
|
||||
<fetures>
|
||||
debug
|
||||
</features>
|
||||
<server>
|
||||
http
|
||||
http-proxy
|
||||
</server>
|
||||
<name>
|
||||
CONNECT with short sends
|
||||
</name>
|
||||
<setenv>
|
||||
# make the first send cut off after this amount of data
|
||||
CURL_SMALLREQSEND=48
|
||||
# make repeated sends small too
|
||||
CURL_SMALLSENDS=40
|
||||
</setenv>
|
||||
<command>
|
||||
http://test.%TESTNUMBER:%HTTPPORT/we/want/that/page/%TESTNUMBER -p -x %HOSTIP:%PROXYPORT -d "datatopost=ohthatsfunyesyes"
|
||||
</command>
|
||||
<features>
|
||||
proxy
|
||||
</features>
|
||||
</client>
|
||||
|
||||
#
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<proxy>
|
||||
CONNECT test.%TESTNUMBER:%HTTPPORT HTTP/1.1
|
||||
Host: test.%TESTNUMBER:%HTTPPORT
|
||||
User-Agent: curl/%VERSION
|
||||
Proxy-Connection: Keep-Alive
|
||||
|
||||
</proxy>
|
||||
<protocol nonewline="yes">
|
||||
POST /we/want/that/page/%TESTNUMBER HTTP/1.1
|
||||
Host: test.%TESTNUMBER:%HTTPPORT
|
||||
User-Agent: curl/%VERSION
|
||||
Accept: */*
|
||||
Content-Length: 27
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
datatopost=ohthatsfunyesyes
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
Loading…
Add table
Add a link
Reference in a new issue