From c2e946708e479d647a81afc8d8f59992f92c6a95 Mon Sep 17 00:00:00 2001 From: Adrian Roe Date: Wed, 26 Jun 2013 18:04:20 +0100 Subject: Add a workaround to disable chunked transfer-encoding This is an undocumented workaround to disable chunks when using HTTP/1.1. It can be used when the client advertises itself as HTTP/1.1 despite not understanding the chunked transfer-encoding. Usage can be found looking at the test for it. When activated, Cowboy will still advertise itself as HTTP/1.1, but will send the body the same way it would if it was HTTP/1.0. --- test/http_SUITE_data/http_streamed.erl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/http_SUITE_data/http_streamed.erl (limited to 'test/http_SUITE_data') diff --git a/test/http_SUITE_data/http_streamed.erl b/test/http_SUITE_data/http_streamed.erl new file mode 100644 index 0000000..674cc40 --- /dev/null +++ b/test/http_SUITE_data/http_streamed.erl @@ -0,0 +1,20 @@ +%% Feel free to use, reuse and abuse the code in this file. + +-module(http_streamed). +-behaviour(cowboy_http_handler). +-export([init/3, handle/2, terminate/3]). + +init({_Transport, http}, Req, _Opts) -> + {ok, Req, undefined}. + +handle(Req, State) -> + Req2 = cowboy_req:set([{resp_state, waiting_stream}], Req), + {ok, Req3} = cowboy_req:chunked_reply(200, Req2), + timer:sleep(100), + cowboy_req:chunk("streamed_handler\r\n", Req3), + timer:sleep(100), + cowboy_req:chunk("works fine!", Req3), + {ok, Req3, State}. + +terminate(_, _, _) -> + ok. -- cgit v1.2.3