summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMariano Guerra <[email protected]>2015-12-22 14:11:42 +0000
committerMariano Guerra <[email protected]>2015-12-22 14:11:42 +0000
commitb3d7e9e10c4f2c28be67c455d0827334d9236c36 (patch)
treed3b8fee463b6b781306aa4bc657e72a6b79b6b9e
parenta227184b3588f2b6e35cfe916d899ec945a1935b (diff)
downloadbullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.tar.gz
bullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.tar.bz2
bullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.zip
allow shutdown on info for eventsource and poll (see #81)
-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) ->