0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 04:10:24 +00:00

Use maps:fold for cowboy_http's set_options for code clarity

This commit is contained in:
Loïc Hoguin 2025-02-07 17:00:08 +01:00
parent 0f257d06b6
commit dad67e19a1
No known key found for this signature in database
GPG key ID: 8A9DF795F6FED764

View file

@ -1268,21 +1268,16 @@ commands(State0=#state{ref=Ref, parent=Parent, socket=Socket, transport=Transpor
Protocol:takeover(Parent, Ref, Socket, Transport, Protocol:takeover(Parent, Ref, Socket, Transport,
opts_for_upgrade(State), Buffer, InitialState); opts_for_upgrade(State), Buffer, InitialState);
%% Set options dynamically. %% Set options dynamically.
commands(State0=#state{overriden_opts=Opts}, commands(State0, StreamID, [{set_options, SetOpts}|Tail]) ->
StreamID, [{set_options, SetOpts}|Tail]) -> State = maps:fold(fun
State1 = case SetOpts of (chunked, Chunked, StateF=#state{overriden_opts=Opts}) ->
#{idle_timeout := IdleTimeout} -> StateF#state{overriden_opts=Opts#{chunked => Chunked}};
set_timeout(State0#state{overriden_opts=Opts#{idle_timeout => IdleTimeout}}, (idle_timeout, IdleTimeout, StateF=#state{overriden_opts=Opts}) ->
set_timeout(StateF#state{overriden_opts=Opts#{idle_timeout => IdleTimeout}},
idle_timeout); idle_timeout);
_ -> (_, _, StateF) ->
State0 StateF
end, end, State0, SetOpts),
State = case SetOpts of
#{chunked := Chunked} ->
State1#state{overriden_opts=Opts#{chunked => Chunked}};
_ ->
State1
end,
commands(State, StreamID, Tail); commands(State, StreamID, Tail);
%% Stream shutdown. %% Stream shutdown.
commands(State, StreamID, [stop|Tail]) -> commands(State, StreamID, [stop|Tail]) ->