Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <xramtsov@gmail.com>2010-01-28 16:46:44 +0300
committerEvgeniy Khramtsov <xramtsov@gmail.com>2010-01-28 16:46:44 +0300
commitc24af4ca6328628e4d9c46da8a4a4e4ff830bdeb (patch)
treed1cf7b73af8bb2c494cade027126f2c8ee20e2f1 /src/ejabberd_c2s.erl
parente31b2582b6448470306fbcfed8eff5327daaacb8 (diff)
new ejabberd_c2s option support: max_fsm_queue
SVN Revision: 2940
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index bd2353cc6..bad7517f7 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -111,7 +111,7 @@
%% Module start with or without supervisor:
-ifdef(NO_TRANSIENT_SUPERVISORS).
-define(SUPERVISOR_START, ?GEN_FSM:start(ejabberd_c2s, [SockData, Opts],
- fsm_limit_opts() ++ ?FSMOPTS)).
+ fsm_limit_opts(Opts) ++ ?FSMOPTS)).
-else.
-define(SUPERVISOR_START, supervisor:start_child(ejabberd_c2s_sup,
[SockData, Opts])).
@@ -158,7 +158,7 @@ start(SockData, Opts) ->
start_link(SockData, Opts) ->
?GEN_FSM:start_link(ejabberd_c2s, [SockData, Opts],
- fsm_limit_opts() ++ ?FSMOPTS).
+ fsm_limit_opts(Opts) ++ ?FSMOPTS).
socket_type() ->
xml_stream.
@@ -2083,10 +2083,15 @@ check_from(El, FromJID) ->
end
end.
-fsm_limit_opts() ->
- case ejabberd_config:get_local_option(max_fsm_queue) of
- N when is_integer(N) ->
+fsm_limit_opts(Opts) ->
+ case lists:keysearch(max_fsm_queue, 1, Opts) of
+ {value, {_, N}} when is_integer(N) ->
[{max_queue, N}];
_ ->
- []
+ case ejabberd_config:get_local_option(max_fsm_queue) of
+ N when is_integer(N) ->
+ [{max_queue, N}];
+ _ ->
+ []
+ end
end.