diff options
author | Mickaël Rémond <mickael.remond@process-one.net> | 2007-11-02 14:45:06 +0000 |
---|---|---|
committer | Mickaël Rémond <mickael.remond@process-one.net> | 2007-11-02 14:45:06 +0000 |
commit | 08cfab8a06ae745d84e85070fe0583b965ffc253 (patch) | |
tree | 3004960759e37d9f9027fae131c71e35c04e5eb5 /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.erl | 43 |
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). + |