From b3d7e9e10c4f2c28be67c455d0827334d9236c36 Mon Sep 17 00:00:00 2001 From: Mariano Guerra Date: Tue, 22 Dec 2015 14:11:42 +0000 Subject: allow shutdown on info for eventsource and poll (see #81) --- src/bullet_handler.erl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/bullet_handler.erl b/src/bullet_handler.erl index c576bda..ed29188 100644 --- a/src/bullet_handler.erl +++ b/src/bullet_handler.erl @@ -107,6 +107,10 @@ info(Message, Req, case Handler:info(Message, Req, HandlerState) of {ok, Req2, HandlerState2} -> {loop, Req2, State#state{handler_state=HandlerState2}, hibernate}; + {shutdown, Req2, HandlerState2} -> + State2 = State#state{handler_state=HandlerState2}, + {ok, Req3} = shutdown_get_mode(GetMode, Req2), + {ok, Req3, State2}; {reply, Data, Req2, HandlerState2} -> State2 = State#state{handler_state=HandlerState2}, case reply_get_mode(GetMode, Data, Req2) of @@ -192,6 +196,11 @@ start_get_mode(eventsource, Req) -> Headers = [{<<"content-type">>, <<"text/event-stream">>}], {ok, _} = cowboy_req:chunked_reply(200, Headers, Req). +shutdown_get_mode(poll, Req) -> + cowboy_req:reply(204, [], <<"">>, Req); +shutdown_get_mode(eventsource, Req) -> + {ok, Req}. + reply_get_mode(poll, Data, Req) -> {ok, _} = cowboy_req:reply(200, [], Data, Req); reply_get_mode(eventsource, Data, Req) -> -- cgit v1.2.3