diff options
author | Daniel Stenberg <daniel@haxx.se> | 2010-08-25 13:42:14 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2010-08-25 13:42:14 +0200 |
commit | 6b6a3bcb61f2d8f4e80a1e2a5bc62e78904256ed (patch) | |
tree | 210ebaa16337c5758c0162fc56381a55abe58e27 /tests/data/test1116 | |
parent | 0cbdcd07a8b176376cf8b57ba89b8717cdd40d5b (diff) | |
download | curl-6b6a3bcb61f2d8f4e80a1e2a5bc62e78904256ed.tar.gz |
http: handle trailer headers in all chunked responses
HTTP allows that a server sends trailing headers after all the chunks
have been sent WITHOUT signalling their presence in the first response
headers. The "Trailer:" header is only a SHOULD there and as we need to
handle the situation even without that header I made libcurl ignore
Trailer: completely.
Test case 1116 was added to verify this and to make sure we handle more
than one trailer header properly.
Reported by: Patrick McManus
Bug: http://curl.haxx.se/bug/view.cgi?id=3052450
Diffstat (limited to 'tests/data/test1116')
-rw-r--r-- | tests/data/test1116 | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/data/test1116 b/tests/data/test1116 new file mode 100644 index 000000000..a9af3e61b --- /dev/null +++ b/tests/data/test1116 @@ -0,0 +1,77 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP GET +chunked Transfer-Encoding +</keywords> +</info> +# +# Server-side +<reply> +<data> +HTTP/1.1 200 funky chunky!
+Server: fakeit/0.9 fakeitbad/1.0
+Transfer-Encoding: chunked
+Connection: mooo
+
+40
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+30
+bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
+21;heresatest=moooo
+cccccccccccccccccccccccccccccccc +
+0
+chunky-trailer: header data
+another-header: yes
+
+</data> +<datacheck> +HTTP/1.1 200 funky chunky!
+Server: fakeit/0.9 fakeitbad/1.0
+Transfer-Encoding: chunked
+Connection: mooo
+
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccc +</datacheck> +</reply> + +# +# Client-side +<client> +<server> +http +</server> + <name> +HTTP GET with chunked trailer without Trailer: + </name> + <command> +http://%HOSTIP:%HTTPPORT/1116 -D log/heads1116 +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strip> +^User-Agent:.* +</strip> +<protocol> +GET /1116 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol> +<file name="log/heads1116"> +HTTP/1.1 200 funky chunky!
+Server: fakeit/0.9 fakeitbad/1.0
+Transfer-Encoding: chunked
+Connection: mooo
+
+chunky-trailer: header data
+another-header: yes
+</file> +</verify> + +</testcase> |