mirror of
https://github.com/curl/curl.git
synced 2026-08-25 14:43:33 +03:00
http: Implement trailing headers for chunked transfers
This adds the CURLOPT_TRAILERDATA and CURLOPT_TRAILERFUNCTION options that allow a callback based approach to sending trailing headers with chunked transfers. The test server (sws) was updated to take into account the detection of the end of transfer in the case of trailing headers presence. Test 1591 checks that trailing headers can be sent using libcurl. Closes #3350
This commit is contained in:
parent
4531b299cc
commit
f464535bfd
17 changed files with 618 additions and 22 deletions
|
|
@ -179,6 +179,7 @@ test1550 test1551 test1552 test1553 test1554 test1555 test1556 test1557 \
|
|||
test1560 test1561 \
|
||||
\
|
||||
test1590 \
|
||||
test1591 \
|
||||
test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \
|
||||
test1608 test1609 test1620 \
|
||||
\
|
||||
|
|
|
|||
63
tests/data/test1591
Normal file
63
tests/data/test1591
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<testcase>
|
||||
<info>
|
||||
<keywords>
|
||||
HTTP
|
||||
HTTP PUT
|
||||
CURLOPT_HTTPTRAILER_FUNCTION
|
||||
CURLOPT_HTTPTRAILER_DATA
|
||||
</keywords>
|
||||
</info>
|
||||
|
||||
# Server-side
|
||||
<reply>
|
||||
<data nocheck="yes">
|
||||
HTTP/1.0 200 OK swsclose
|
||||
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
</data>
|
||||
</reply>
|
||||
# Client-side
|
||||
<client>
|
||||
<features>
|
||||
HTTP
|
||||
</features>
|
||||
<server>
|
||||
http
|
||||
</server>
|
||||
<name>
|
||||
HTTP PUT with trailers at the end
|
||||
</name>
|
||||
<tool>
|
||||
lib1591
|
||||
</tool>
|
||||
<command>
|
||||
http://%HOSTIP:%HTTPPORT/bzz/1591
|
||||
</command>
|
||||
<stdin>
|
||||
more than one byte
|
||||
</stdin>
|
||||
</client>
|
||||
|
||||
# Verify data after the test has been "shot"
|
||||
<verify>
|
||||
<strip>
|
||||
^User-Agent:.*
|
||||
</strip>
|
||||
<protocol>
|
||||
PUT /bzz/1591 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Trailer: my-super-awesome-trailer, my-other-awesome-trailer
|
||||
Expect: 100-continue
|
||||
|
||||
e
|
||||
Hello Cloud!
|
||||
|
||||
0
|
||||
my-super-awesome-trailer: trail1
|
||||
my-other-awesome-trailer: trail2
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
</testcase>
|
||||
Loading…
Add table
Add a link
Reference in a new issue