From f464535bfdd9a83140d8a13c3fe3d937239d1c2a Mon Sep 17 00:00:00 2001 From: Ayoub Boudhar Date: Thu, 6 Dec 2018 10:18:03 +0100 Subject: 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 --- tests/data/Makefile.inc | 1 + tests/data/test1591 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 tests/data/test1591 (limited to 'tests/data') diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 250aa2004..52916c983 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -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 \ \ diff --git a/tests/data/test1591 b/tests/data/test1591 new file mode 100644 index 000000000..e864fdbaa --- /dev/null +++ b/tests/data/test1591 @@ -0,0 +1,63 @@ + + + +HTTP +HTTP PUT +CURLOPT_HTTPTRAILER_FUNCTION +CURLOPT_HTTPTRAILER_DATA + + + +# Server-side + + +HTTP/1.0 200 OK swsclose +Date: Thu, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake + + +# Client-side + + +HTTP + + +http + + +HTTP PUT with trailers at the end + + +lib1591 + + +http://%HOSTIP:%HTTPPORT/bzz/1591 + + +more than one byte + + + +# Verify data after the test has been "shot" + + +^User-Agent:.* + + +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 + + + + -- cgit v1.2.3