aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2025-02-07 17:00:08 +0100
committerLoïc Hoguin <[email protected]>2025-02-07 17:59:44 +0100
commitdad67e19a1b07a7891aee7f87462e55ec08c5929 (patch)
tree5d24249a71da4f3699c3a31abea382df169b57c2
parent0f257d06b6a4b1170621af66e9b54addf4d8e954 (diff)
downloadcowboy-dad67e19a1b07a7891aee7f87462e55ec08c5929.tar.gz
cowboy-dad67e19a1b07a7891aee7f87462e55ec08c5929.tar.bz2
cowboy-dad67e19a1b07a7891aee7f87462e55ec08c5929.zip
Use maps:fold for cowboy_http's set_options for code clarity
-rw-r--r--src/cowboy_http.erl23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/cowboy_http.erl b/src/cowboy_http.erl
index f940e47..476c694 100644
--- a/src/cowboy_http.erl
+++ b/src/cowboy_http.erl
@@ -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]) ->