diff options
Diffstat (limited to 'test/http_handler_stream_body.erl')
-rw-r--r-- | test/http_handler_stream_body.erl | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/test/http_handler_stream_body.erl b/test/http_handler_stream_body.erl index feb4f78..5e42fa7 100644 --- a/test/http_handler_stream_body.erl +++ b/test/http_handler_stream_body.erl @@ -2,7 +2,7 @@ -module(http_handler_stream_body). -behaviour(cowboy_http_handler). --export([init/3, handle/2, terminate/2]). +-export([init/3, handle/2, terminate/3]). -record(state, {headers, body, reply}). @@ -12,13 +12,17 @@ init({_Transport, http}, Req, Opts) -> 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_req:transport(Req), - SFun = fun() -> Transport:send(Socket, Body), sent end, - SLen = iolist_size(Body), - Req2 = cowboy_req:set_resp_body_fun(SLen, SFun, Req), +handle(Req, State=#state{headers=_Headers, body=Body, reply=Reply}) -> + SFun = fun(Socket, Transport) -> Transport:send(Socket, Body) end, + Req2 = case Reply of + set_resp -> + SLen = iolist_size(Body), + cowboy_req:set_resp_body_fun(SLen, SFun, Req); + set_resp_close -> + cowboy_req:set_resp_body_fun(SFun, Req) + end, {ok, Req3} = cowboy_req:reply(200, Req2), {ok, Req3, State}. -terminate(_Req, _State) -> +terminate(_, _, _) -> ok. |