summaryrefslogtreecommitdiffstats
path: root/src/bullet_handler.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/bullet_handler.erl')
-rw-r--r--src/bullet_handler.erl9
1 files changed, 9 insertions, 0 deletions
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) ->