aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_c2s_config.erl
diff options
context:
space:
mode:
authorMickaël Rémond <mickael.remond@process-one.net>2007-11-02 14:45:06 +0000
committerMickaël Rémond <mickael.remond@process-one.net>2007-11-02 14:45:06 +0000
commit08cfab8a06ae745d84e85070fe0583b965ffc253 (patch)
tree3004960759e37d9f9027fae131c71e35c04e5eb5 /src/ejabberd_c2s_config.erl
parent* src/web/ejabberd_http_poll.erl: Support for c2s ACL access, (diff)
* src/web/ejabberd_http_poll.erl: Refactoring. Moved c2s limits acquisition to a separate module.
* src/ejabberd_c2s_config.erl: Likewise. SVN Revision: 966
Diffstat (limited to 'src/ejabberd_c2s_config.erl')
-rw-r--r--src/ejabberd_c2s_config.erl43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/ejabberd_c2s_config.erl b/src/ejabberd_c2s_config.erl
new file mode 100644
index 000000000..77013a8d0
--- /dev/null
+++ b/src/ejabberd_c2s_config.erl
@@ -0,0 +1,43 @@
+%%%----------------------------------------------------------------------
+%%% File : ejabberd_c2s_config.erl
+%%% Author : Mickael Remond <mremond@process-one.net>
+%%% Purpose : Functions for c2s interactions from other client
+%%% connector modules
+%%% Created : 2 Nov 2007 by Mickael Remond <mremond@process-one.net>
+%%% Id : $Id: $
+%%%----------------------------------------------------------------------
+
+-module(ejabberd_c2s_config).
+-author('mremond@process-one.net').
+-svn('$Revision: 965 $ ').
+
+-export([get_c2s_limits/0]).
+
+%% 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
+ 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(Opts, SelectedValues).
+