diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-03-27 12:14:57 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-03-28 13:27:49 +0200 |
commit | 452203341d6e97b8f52f9a886046d9fdb96346a9 (patch) | |
tree | c5aa7fa5e29da5a1799123703be46f28d0491fc1 /tests/data/test1540 | |
parent | 7975d10cf8a3fe9b35867509b9ef10d06614eb3a (diff) |
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
Diffstat (limited to 'tests/data/test1540')
-rw-r--r-- | tests/data/test1540 | 64 |
1 files changed, 64 insertions, 0 deletions
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 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP GET +CURLPAUSE_RECV +chunked encoding +Trailer: +</keywords> +</info> + +# Server-side +<reply> +<data> +HTTP/1.1 200 OK swsclose
+Transfer-Encoding: chunked
+Trailer: MyCoolTrailerHeader
+
+4
+data
+5
+d474 +
+0
+MyCoolTrailerHeader: amazingtrailer
+
+</data> +<datacheck> +HTTP/1.1 200 OK swsclose
+Transfer-Encoding: chunked
+Trailer: MyCoolTrailerHeader
+
+Got 4 bytes but pausing! +datad474 +MyCoolTrailerHeader: amazingtrailer
+</datacheck> + +</reply> +# Client-side +<client> +<server> +http +</server> +<tool> +lib1540 +</tool> + <name> +chunked with trailers and pausing the receive + </name> + <command> +http://%HOSTIP:%HTTPPORT/1540 +</command> +</client> + +# Verify data after the test has been "shot" +<verify> +<protocol> +GET /1540 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol> +</verify> +</testcase> |