aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s_config.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_c2s_config.erl')
-rw-r--r--src/ejabberd_c2s_config.erl42
1 files changed, 24 insertions, 18 deletions
diff --git a/src/ejabberd_c2s_config.erl b/src/ejabberd_c2s_config.erl
index b416edd2b..4dbc48f38 100644
--- a/src/ejabberd_c2s_config.erl
+++ b/src/ejabberd_c2s_config.erl
@@ -26,6 +26,7 @@
%%%----------------------------------------------------------------------
-module(ejabberd_c2s_config).
+
-author('mremond@process-one.net').
-export([get_c2s_limits/0]).
@@ -33,28 +34,33 @@
%% Get first c2s configuration limitations to apply it to other c2s
%% connectors.
get_c2s_limits() ->
- case ejabberd_config:get_local_option(listen) of
- undefined ->
- [];
- C2SFirstListen ->
- case lists:keysearch(ejabberd_c2s, 2, C2SFirstListen) of
- false ->
- [];
- {value, {_Port, ejabberd_c2s, Opts}} ->
- select_opts_values(Opts)
- end
+ case ejabberd_config:get_local_option(listen, fun(V) -> V end) of
+ undefined -> [];
+ C2SFirstListen ->
+ case lists:keysearch(ejabberd_c2s, 2, C2SFirstListen) of
+ false -> [];
+ {value, {_Port, ejabberd_c2s, Opts}} ->
+ select_opts_values(Opts)
+ end
end.
%% Only get access, shaper and max_stanza_size values
+
select_opts_values(Opts) ->
select_opts_values(Opts, []).
+
select_opts_values([], SelectedValues) ->
SelectedValues;
-select_opts_values([{access,Value}|Opts], SelectedValues) ->
- select_opts_values(Opts, [{access, Value}|SelectedValues]);
-select_opts_values([{shaper,Value}|Opts], SelectedValues) ->
- select_opts_values(Opts, [{shaper, Value}|SelectedValues]);
-select_opts_values([{max_stanza_size,Value}|Opts], SelectedValues) ->
- select_opts_values(Opts, [{max_stanza_size, Value}|SelectedValues]);
-select_opts_values([_Opt|Opts], SelectedValues) ->
+select_opts_values([{access, Value} | Opts],
+ SelectedValues) ->
+ select_opts_values(Opts,
+ [{access, Value} | SelectedValues]);
+select_opts_values([{shaper, Value} | Opts],
+ SelectedValues) ->
+ select_opts_values(Opts,
+ [{shaper, Value} | SelectedValues]);
+select_opts_values([{max_stanza_size, Value} | Opts],
+ SelectedValues) ->
+ select_opts_values(Opts,
+ [{max_stanza_size, Value} | SelectedValues]);
+select_opts_values([_Opt | Opts], SelectedValues) ->
select_opts_values(Opts, SelectedValues).
-