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 | |
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')
-rw-r--r-- | tests/data/Makefile.inc | 1 | ||||
-rw-r--r-- | tests/data/test1540 | 64 |
2 files changed, 65 insertions, 0 deletions
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index edeb9000c..e908c12b9 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -163,6 +163,7 @@ test1520 \ \ test1525 test1526 test1527 test1528 test1529 test1530 test1531 test1532 \ test1533 test1534 test1535 test1536 \ +test1540 \ \ test1600 test1601 test1602 test1603 test1604 test1605 \ \ 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> |