diff options
author | Loïc Hoguin <[email protected]> | 2012-01-03 23:26:01 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2012-01-03 23:39:45 +0100 |
commit | bd8f31ed07f50d924788cb196fb4184accbfc4a2 (patch) | |
tree | 75984e557fe642dc3e2e74b8a0ae2e1c14c46aa3 /test/http_handler_stream_body.erl | |
parent | 063f64a02a398336cdac08f3394905fd378adf60 (diff) | |
parent | 89870b22d9a27e40407ed037258b8b7dbf73aefa (diff) | |
download | cowboy-bd8f31ed07f50d924788cb196fb4184accbfc4a2.tar.gz cowboy-bd8f31ed07f50d924788cb196fb4184accbfc4a2.tar.bz2 cowboy-bd8f31ed07f50d924788cb196fb4184accbfc4a2.zip |
Merge branch 'static-handler-split' of https://github.com/klaar/cowboy
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. |