From 452203341d6e97b8f52f9a886046d9fdb96346a9 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 27 Mar 2017 12:14:57 +0200 Subject: pause: handle mixed types of data when paused When receiving chunked encoded data with trailers, and the write callback returns PAUSE, there might be both body and header to store to resend on unpause. Previously libcurl returned error for that case. Added test case 1540 to verify. Reported-by: Stephen Toub Fixes #1354 Closes #1357 --- tests/data/test1540 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tests/data/test1540 (limited to 'tests/data/test1540') diff --git a/tests/data/test1540 b/tests/data/test1540 new file mode 100644 index 000000000..3277f550f --- /dev/null +++ b/tests/data/test1540 @@ -0,0 +1,64 @@ + + + +HTTP +HTTP GET +CURLPAUSE_RECV +chunked encoding +Trailer: + + + +# Server-side + + +HTTP/1.1 200 OK swsclose +Transfer-Encoding: chunked +Trailer: MyCoolTrailerHeader + +4 +data +5 +d474 + +0 +MyCoolTrailerHeader: amazingtrailer + + + +HTTP/1.1 200 OK swsclose +Transfer-Encoding: chunked +Trailer: MyCoolTrailerHeader + +Got 4 bytes but pausing! +datad474 +MyCoolTrailerHeader: amazingtrailer + + + +# Client-side + + +http + + +lib1540 + + +chunked with trailers and pausing the receive + + +http://%HOSTIP:%HTTPPORT/1540 + + + +# Verify data after the test has been "shot" + + +GET /1540 HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +Accept: */* + + + + -- cgit v1.2.3