0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +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,
opts_for_upgrade(State), Buffer, InitialState);
%% Set options dynamically.
commands(State0=#state{overriden_opts=Opts},
StreamID, [{set_options, SetOpts}|Tail]) ->
State1 = case SetOpts of
#{idle_timeout := IdleTimeout} ->
set_timeout(State0#state{overriden_opts=Opts#{idle_timeout => IdleTimeout}},
commands(State0, StreamID, [{set_options, SetOpts}|Tail]) ->
State = maps:fold(fun
(chunked, Chunked, StateF=#state{overriden_opts=Opts}) ->
StateF#state{overriden_opts=Opts#{chunked => Chunked}};
(idle_timeout, IdleTimeout, StateF=#state{overriden_opts=Opts}) ->
set_timeout(StateF#state{overriden_opts=Opts#{idle_timeout => IdleTimeout}},
idle_timeout);
_ ->
State0
end,
State = case SetOpts of
#{chunked := Chunked} ->
State1#state{overriden_opts=Opts#{chunked => Chunked}};
_ ->
State1
end,
(_, _, StateF) ->
StateF
end, State0, SetOpts),
commands(State, StreamID, Tail);
%% Stream shutdown.
commands(State, StreamID, [stop|Tail]) ->