mirror of
https://github.com/ninenines/cowboy.git
synced 2025-07-15 20:50:24 +00:00
Rename 'shutdown' close reason and tuples to 'stop'
The 'shutdown' atom has a specific meaning inside OTP. We are instead going to use 'stop' which is pretty much the equivalent of what we actually do. 'shutdown' is now reserved for future special processes implementation.
This commit is contained in:
parent
903f6f4c7d
commit
8cbd8c1882
10 changed files with 46 additions and 47 deletions
|
@ -36,7 +36,7 @@
|
|||
-callback info(any(), Req, State)
|
||||
-> {ok, Req, State}
|
||||
| {ok, Req, State, hibernate}
|
||||
| {shutdown, Req, State}
|
||||
| {stop, Req, State}
|
||||
when Req::cowboy_req:req(), State::any().
|
||||
%% @todo optional -callback terminate(terminate_reason(), cowboy_req:req(), state()) -> ok.
|
||||
|
||||
|
@ -153,8 +153,8 @@ call(Req, State=#state{resp_sent=RespSent},
|
|||
after_call(Req2, State, Handler, HandlerState2);
|
||||
{ok, Req2, HandlerState2, hibernate} ->
|
||||
after_call(Req2, State#state{hibernate=true}, Handler, HandlerState2);
|
||||
{shutdown, Req2, HandlerState2} ->
|
||||
after_loop(Req2, State, Handler, HandlerState2, shutdown)
|
||||
{stop, Req2, HandlerState2} ->
|
||||
after_loop(Req2, State, Handler, HandlerState2, stop)
|
||||
catch Class:Reason ->
|
||||
Stacktrace = erlang:get_stacktrace(),
|
||||
if RespSent -> ok; true ->
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
-type frag_state() :: undefined
|
||||
| {nofin, opcode(), binary()} | {fin, opcode(), binary()}.
|
||||
-type rsv() :: << _:3 >>.
|
||||
-type terminate_reason() :: normal | shutdown | timeout
|
||||
-type terminate_reason() :: normal | stop | timeout
|
||||
| remote | {remote, close_code(), binary()}
|
||||
| {error, badencoding | badframe | closed | atom()}
|
||||
| {crash, error | exit | throw, any()}.
|
||||
|
@ -49,14 +49,14 @@
|
|||
| {ok, Req, State, hibernate}
|
||||
| {reply, frame() | [frame()], Req, State}
|
||||
| {reply, frame() | [frame()], Req, State, hibernate}
|
||||
| {shutdown, Req, State}
|
||||
| {stop, Req, State}
|
||||
when Req::cowboy_req:req(), State::any().
|
||||
-callback websocket_info(any(), Req, State)
|
||||
-> {ok, Req, State}
|
||||
| {ok, Req, State, hibernate}
|
||||
| {reply, frame() | [frame()], Req, State}
|
||||
| {reply, frame() | [frame()], Req, State, hibernate}
|
||||
| {shutdown, Req, State}
|
||||
| {stop, Req, State}
|
||||
when Req::cowboy_req:req(), State::any().
|
||||
%% @todo optional -callback terminate(terminate_reason(), cowboy_req:req(), state()) -> ok.
|
||||
|
||||
|
@ -581,8 +581,8 @@ handler_call(State=#state{handler=Handler}, Req, HandlerState,
|
|||
case websocket_send_many(Payload, State) of
|
||||
{ok, State2} ->
|
||||
NextState(State2, Req2, HandlerState2, RemainingData);
|
||||
{shutdown, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, shutdown);
|
||||
{stop, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, stop);
|
||||
{{error, _} = Error, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, Error)
|
||||
end;
|
||||
|
@ -592,8 +592,8 @@ handler_call(State=#state{handler=Handler}, Req, HandlerState,
|
|||
{ok, State2} ->
|
||||
NextState(State2#state{hibernate=true},
|
||||
Req2, HandlerState2, RemainingData);
|
||||
{shutdown, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, shutdown);
|
||||
{stop, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, stop);
|
||||
{{error, _} = Error, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, Error)
|
||||
end;
|
||||
|
@ -601,8 +601,8 @@ handler_call(State=#state{handler=Handler}, Req, HandlerState,
|
|||
case websocket_send(Payload, State) of
|
||||
{ok, State2} ->
|
||||
NextState(State2, Req2, HandlerState2, RemainingData);
|
||||
{shutdown, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, shutdown);
|
||||
{stop, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, stop);
|
||||
{{error, _} = Error, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, Error)
|
||||
end;
|
||||
|
@ -611,13 +611,13 @@ handler_call(State=#state{handler=Handler}, Req, HandlerState,
|
|||
{ok, State2} ->
|
||||
NextState(State2#state{hibernate=true},
|
||||
Req2, HandlerState2, RemainingData);
|
||||
{shutdown, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, shutdown);
|
||||
{stop, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, stop);
|
||||
{{error, _} = Error, State2} ->
|
||||
handler_terminate(State2, Req2, HandlerState2, Error)
|
||||
end;
|
||||
{shutdown, Req2, HandlerState2} ->
|
||||
websocket_close(State, Req2, HandlerState2, shutdown)
|
||||
{stop, Req2, HandlerState2} ->
|
||||
websocket_close(State, Req2, HandlerState2, stop)
|
||||
catch Class:Reason ->
|
||||
_ = websocket_close(State, Req, HandlerState, {crash, Class, Reason}),
|
||||
erlang:Class([
|
||||
|
@ -652,12 +652,11 @@ websocket_deflate_frame(_, Payload, State=#state{deflate_state = Deflate}) ->
|
|||
{Deflated1, << 1:1, 0:2 >>, State}.
|
||||
|
||||
-spec websocket_send(frame(), #state{})
|
||||
-> {ok, #state{}} | {shutdown, #state{}} | {{error, atom()}, #state{}}.
|
||||
websocket_send(Type, State=#state{socket=Socket, transport=Transport})
|
||||
when Type =:= close ->
|
||||
-> {ok, #state{}} | {stop, #state{}} | {{error, atom()}, #state{}}.
|
||||
websocket_send(Type = close, State=#state{socket=Socket, transport=Transport}) ->
|
||||
Opcode = websocket_opcode(Type),
|
||||
case Transport:send(Socket, << 1:1, 0:3, Opcode:4, 0:8 >>) of
|
||||
ok -> {shutdown, State};
|
||||
ok -> {stop, State};
|
||||
Error -> {Error, State}
|
||||
end;
|
||||
websocket_send(Type, State=#state{socket=Socket, transport=Transport})
|
||||
|
@ -675,7 +674,7 @@ websocket_send({Type = close, StatusCode, Payload}, State=#state{
|
|||
BinLen = payload_length_to_binary(Len),
|
||||
Transport:send(Socket,
|
||||
[<< 1:1, 0:3, Opcode:4, 0:1, BinLen/bits, StatusCode:16 >>, Payload]),
|
||||
{shutdown, State};
|
||||
{stop, State};
|
||||
websocket_send({Type, Payload0}, State=#state{socket=Socket, transport=Transport}) ->
|
||||
Opcode = websocket_opcode(Type),
|
||||
{Payload, Rsv, State2} = websocket_deflate_frame(Opcode, iolist_to_binary(Payload0), State),
|
||||
|
@ -700,13 +699,13 @@ payload_length_to_binary(N) ->
|
|||
end.
|
||||
|
||||
-spec websocket_send_many([frame()], #state{})
|
||||
-> {ok, #state{}} | {shutdown, #state{}} | {{error, atom()}, #state{}}.
|
||||
-> {ok, #state{}} | {stop, #state{}} | {{error, atom()}, #state{}}.
|
||||
websocket_send_many([], State) ->
|
||||
{ok, State};
|
||||
websocket_send_many([Frame|Tail], State) ->
|
||||
case websocket_send(Frame, State) of
|
||||
{ok, State2} -> websocket_send_many(Tail, State2);
|
||||
{shutdown, State2} -> {shutdown, State2};
|
||||
{stop, State2} -> {stop, State2};
|
||||
{Error, State2} -> {Error, State2}
|
||||
end.
|
||||
|
||||
|
@ -716,7 +715,7 @@ websocket_send_many([Frame|Tail], State) ->
|
|||
websocket_close(State=#state{socket=Socket, transport=Transport},
|
||||
Req, HandlerState, Reason) ->
|
||||
case Reason of
|
||||
Normal when Normal =:= shutdown; Normal =:= timeout ->
|
||||
Normal when Normal =:= stop; Normal =:= timeout ->
|
||||
Transport:send(Socket, << 1:1, 0:3, 8:4, 0:1, 2:7, 1000:16 >>);
|
||||
{error, badframe} ->
|
||||
Transport:send(Socket, << 1:1, 0:3, 8:4, 0:1, 2:7, 1002:16 >>);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue