diff options
author | Magnus Klaar <[email protected]> | 2011-12-28 18:00:27 +0100 |
---|---|---|
committer | Magnus Klaar <[email protected]> | 2011-12-28 18:17:10 +0100 |
commit | 937a2b03260a86b915a128fbbdf3b88a8a76cc3f (patch) | |
tree | 9ded51718819674c8fc67fe1ee8d938f85eb223e /test/http_handler_stream_body.erl | |
parent | 612b8f21feed57bea51958487442be1a7c8ae9b1 (diff) | |
download | cowboy-937a2b03260a86b915a128fbbdf3b88a8a76cc3f.tar.gz cowboy-937a2b03260a86b915a128fbbdf3b88a8a76cc3f.tar.bz2 cowboy-937a2b03260a86b915a128fbbdf3b88a8a76cc3f.zip |
Add cowboy_http_req:set_resp_body_fun/3.
Diffstat (limited to 'test/http_handler_stream_body.erl')
-rw-r--r-- | test/http_handler_stream_body.erl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/http_handler_stream_body.erl b/test/http_handler_stream_body.erl new file mode 100644 index 0000000..c90f746 --- /dev/null +++ b/test/http_handler_stream_body.erl @@ -0,0 +1,24 @@ +%% Feel free to use, reuse and abuse the code in this file. + +-module(http_handler_stream_body). +-behaviour(cowboy_http_handler). +-export([init/3, handle/2, terminate/2]). + +-record(state, {headers, body, reply}). + +init({_Transport, http}, Req, Opts) -> + Headers = proplists:get_value(headers, Opts, []), + Body = proplists:get_value(body, Opts, "http_handler_stream_body"), + Reply = proplists:get_value(reply, Opts), + {ok, Req, #state{headers=Headers, body=Body, reply=Reply}}. + +handle(Req, State=#state{headers=_Headers, body=Body, reply=set_resp}) -> + {ok, Transport, Socket} = cowboy_http_req:transport(Req), + SFun = fun() -> Transport:send(Socket, Body), sent end, + SLen = iolist_size(Body), + {ok, Req2} = cowboy_http_req:set_resp_body_fun(SLen, SFun, Req), + {ok, Req3} = cowboy_http_req:reply(200, Req2), + {ok, Req3, State}. + +terminate(_Req, _State) -> + ok. |