From cf53d834e9931151a46fed31e644d7eb05e816be Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 4 May 2017 12:24:47 +0300 Subject: [PATCH] Introduce 'iqdisc' global option --- src/gen_iq_handler.erl | 10 +++++++++- src/mod_adhoc.erl | 4 ++-- src/mod_blocking.erl | 4 ++-- src/mod_carboncopy.erl | 4 ++-- src/mod_delegation.erl | 2 +- src/mod_disco.erl | 4 ++-- src/mod_irc.erl | 6 +++--- src/mod_last.erl | 4 ++-- src/mod_mam.erl | 4 ++-- src/mod_mix.erl | 2 +- src/mod_muc.erl | 6 +++--- src/mod_offline.erl | 4 ++-- src/mod_ping.erl | 4 ++-- src/mod_privacy.erl | 4 ++-- src/mod_private.erl | 4 ++-- src/mod_proxy65_service.erl | 6 +++--- src/mod_pubsub.erl | 2 +- src/mod_register.erl | 4 ++-- src/mod_roster.erl | 4 ++-- src/mod_sic.erl | 4 ++-- src/mod_stats.erl | 2 +- src/mod_time.erl | 4 ++-- src/mod_vcard.erl | 2 +- src/mod_version.erl | 4 ++-- 24 files changed, 53 insertions(+), 45 deletions(-) diff --git a/src/gen_iq_handler.erl b/src/gen_iq_handler.erl index ebf056ebb..aaa7861dc 100644 --- a/src/gen_iq_handler.erl +++ b/src/gen_iq_handler.erl @@ -31,11 +31,13 @@ -define(GEN_SERVER, gen_server). -endif. -behaviour(?GEN_SERVER). +-behaviour(ejabberd_config). %% API -export([start_link/3, add_iq_handler/6, remove_iq_handler/3, stop_iq_handler/3, handle/5, - process_iq/4, check_type/1, transform_module_options/1]). + process_iq/4, check_type/1, transform_module_options/1, + opt_type/1, iqdisc/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, @@ -183,6 +185,9 @@ check_type(one_queue) -> one_queue; check_type(N) when is_integer(N), N>0 -> N; check_type(parallel) -> parallel. +iqdisc(Host) -> + ejabberd_config:get_option({iqdisc, Host}, one_queue). + -spec transform_module_options([{atom(), any()}]) -> [{atom(), any()}]. transform_module_options(Opts) -> @@ -193,6 +198,9 @@ transform_module_options(Opts) -> Opt end, Opts). +opt_type(iqdisc) -> fun check_type/1; +opt_type(_) -> [iqdisc]. + %%==================================================================== %% gen_server callbacks %%==================================================================== diff --git a/src/mod_adhoc.erl b/src/mod_adhoc.erl index 46fed2867..e6df39044 100644 --- a/src/mod_adhoc.erl +++ b/src/mod_adhoc.erl @@ -42,7 +42,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_COMMANDS, ?MODULE, process_local_iq, IQDisc), @@ -88,7 +88,7 @@ stop(Host) -> ?NS_COMMANDS). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_COMMANDS, ?MODULE, process_local_iq, IQDisc), diff --git a/src/mod_blocking.erl b/src/mod_blocking.erl index 6da7b4358..6b6f4f19a 100644 --- a/src/mod_blocking.erl +++ b/src/mod_blocking.erl @@ -46,7 +46,7 @@ -type block_event() :: {block, [jid()]} | {unblock, [jid()]} | unblock_all. start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), ejabberd_hooks:add(disco_local_features, Host, ?MODULE, disco_features, 50), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_BLOCKING, ?MODULE, process_iq, IQDisc). @@ -56,7 +56,7 @@ stop(Host) -> gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_BLOCKING). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_BLOCKING, ?MODULE, process_iq, IQDisc); diff --git a/src/mod_carboncopy.erl b/src/mod_carboncopy.erl index 0d036c8e9..307d61548 100644 --- a/src/mod_carboncopy.erl +++ b/src/mod_carboncopy.erl @@ -61,7 +61,7 @@ is_carbon_copy(_) -> false. start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), ejabberd_hooks:add(disco_local_features, Host, ?MODULE, disco_features, 50), Mod = gen_mod:ram_db_mod(Host, ?MODULE), init_cache(Mod, Host, Opts), @@ -95,7 +95,7 @@ reload(Host, NewOpts, OldOpts) -> false -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_CARBONS_2, ?MODULE, iq_handler, IQDisc); diff --git a/src/mod_delegation.erl b/src/mod_delegation.erl index f41c7610c..865f8ebf4 100644 --- a/src/mod_delegation.erl +++ b/src/mod_delegation.erl @@ -170,7 +170,7 @@ handle_cast({disco_info, Type, Host, NS, Info}, State) -> sub_els = [#delegation{delegated = [#delegated{ns = NS}]}]}, Delegations = dict:store({NS, Type}, {Host, Info}, State#state.delegations), gen_iq_handler:add_iq_handler(Type, State#state.server_host, NS, - ?MODULE, Type, one_queue), + ?MODULE, Type, gen_iq_handler:iqdisc(Host)), ejabberd_router:route(Msg), ?INFO_MSG("Namespace '~s' is delegated to external component '~s'", [NS, Host]), diff --git a/src/mod_disco.erl b/src/mod_disco.erl index 6b8263371..7fde1b410 100644 --- a/src/mod_disco.erl +++ b/src/mod_disco.erl @@ -50,7 +50,7 @@ -type items_acc() :: {error, stanza_error()} | {result, [disco_item()]} | empty. start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_DISCO_ITEMS, ?MODULE, process_local_iq_items, IQDisc), @@ -128,7 +128,7 @@ reload(Host, NewOpts, OldOpts) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_DISCO_ITEMS, ?MODULE, diff --git a/src/mod_irc.erl b/src/mod_irc.erl index a2fa4fcd5..fc85668e8 100644 --- a/src/mod_irc.erl +++ b/src/mod_irc.erl @@ -107,7 +107,7 @@ init([Host, Opts]) -> catch ets:new(irc_connection, [named_table, public, {keypos, #irc_connection.jid_server_host}]), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), register_hooks(MyHost, IQDisc), ejabberd_router:register_route(MyHost, Host), {ok, @@ -135,8 +135,8 @@ handle_call(stop, _From, State) -> handle_cast({reload, ServerHost, NewOpts, OldOpts}, State) -> NewHost = gen_mod:get_opt_host(ServerHost, NewOpts, <<"irc.@HOST@">>), OldHost = gen_mod:get_opt_host(ServerHost, OldOpts, <<"irc.@HOST@">>), - NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, one_queue), - OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, one_queue), + NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, gen_iq_handler:iqdisc(ServerHost)), + OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, gen_iq_handler:iqdisc(ServerHost)), NewMod = gen_mod:db_mod(ServerHost, NewOpts, ?MODULE), OldMod = gen_mod:db_mod(ServerHost, OldOpts, ?MODULE), Access = gen_mod:get_opt(access, NewOpts, all), diff --git a/src/mod_last.erl b/src/mod_last.erl index a2a92cbf7..052c17c02 100644 --- a/src/mod_last.erl +++ b/src/mod_last.erl @@ -53,7 +53,7 @@ -callback remove_user(binary(), binary()) -> any(). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), gen_iq_handler:add_iq_handler(ejabberd_local, Host, @@ -91,7 +91,7 @@ reload(Host, NewOpts, OldOpts) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_LAST, ?MODULE, process_local_iq, IQDisc), diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 4b94163c0..947fb5fbe 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -72,7 +72,7 @@ %%% API %%%=================================================================== start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), init_cache(Host, Opts), @@ -181,7 +181,7 @@ reload(Host, NewOpts, OldOpts) -> ok end, ets_cache:setopts(archive_prefs_cache, NewOpts), - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> register_iq_handlers(Host, IQDisc); true -> diff --git a/src/mod_mix.erl b/src/mod_mix.erl index 380ef4997..4763447f3 100644 --- a/src/mod_mix.erl +++ b/src/mod_mix.erl @@ -125,7 +125,7 @@ process_iq(#iq{lang = Lang} = IQ) -> init([ServerHost, Opts]) -> process_flag(trap_exit, true), Host = gen_mod:get_opt_host(ServerHost, Opts, <<"mix.@HOST@">>), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), ConfigTab = gen_mod:get_module_proc(Host, config), ets:new(ConfigTab, [named_table]), ets:insert(ConfigTab, {plugins, [<<"mix">>]}), diff --git a/src/mod_muc.erl b/src/mod_muc.erl index b37f1c94d..56616b927 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -224,7 +224,7 @@ get_online_rooms_by_user(ServerHost, LUser, LServer) -> init([Host, Opts]) -> process_flag(trap_exit, true), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), #state{access = Access, host = MyHost, history_size = HistorySize, queue_type = QueueType, room_shaper = RoomShaper} = State = init_state(Host, Opts), @@ -259,8 +259,8 @@ handle_call({create, Room, From, Nick, Opts}, _From, {reply, ok, State}. handle_cast({reload, ServerHost, NewOpts, OldOpts}, #state{host = OldHost}) -> - NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, one_queue), - OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, one_queue), + NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, gen_iq_handler:iqdisc(ServerHost)), + OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, gen_iq_handler:iqdisc(ServerHost)), NewMod = gen_mod:db_mod(ServerHost, NewOpts, ?MODULE), NewRMod = gen_mod:ram_db_mod(ServerHost, NewOpts, ?MODULE), OldMod = gen_mod:db_mod(ServerHost, OldOpts, ?MODULE), diff --git a/src/mod_offline.erl b/src/mod_offline.erl index f92090717..c06bb8976 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -129,7 +129,7 @@ init([Host, Opts]) -> process_flag(trap_exit, true), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), - IQDisc = gen_mod:get_opt(iqdisc, Opts, no_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), ejabberd_hooks:add(offline_message_hook, Host, ?MODULE, store_packet, 50), ejabberd_hooks:add(c2s_self_presence, Host, ?MODULE, c2s_self_presence, 50), @@ -173,7 +173,7 @@ handle_cast({reload, NewOpts, OldOpts}, #state{host = Host} = State) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_FLEX_OFFLINE, ?MODULE, handle_offline_query, IQDisc); diff --git a/src/mod_ping.erl b/src/mod_ping.erl index 038b1bc2d..1c9639bf7 100644 --- a/src/mod_ping.erl +++ b/src/mod_ping.erl @@ -95,7 +95,7 @@ reload(Host, NewOpts, OldOpts) -> init([Host, Opts]) -> process_flag(trap_exit, true), State = init_state(Host, Opts), - IQDisc = gen_mod:get_opt(iqdisc, Opts, no_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), register_iq_handlers(Host, IQDisc), case State#state.send_pings of true -> register_hooks(Host); @@ -114,7 +114,7 @@ handle_call(_Req, _From, State) -> handle_cast({reload, Host, NewOpts, OldOpts}, #state{timers = Timers} = OldState) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> register_iq_handlers(Host, IQDisc); true -> ok end, diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 22cfd8243..32a103e40 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -60,7 +60,7 @@ -callback remove_user(binary(), binary()) -> any(). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), ejabberd_hooks:add(disco_local_features, Host, ?MODULE, @@ -106,7 +106,7 @@ reload(Host, NewOpts, OldOpts) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_PRIVACY, ?MODULE, process_iq, IQDisc); diff --git a/src/mod_private.erl b/src/mod_private.erl index 16ca31491..8f9059d90 100644 --- a/src/mod_private.erl +++ b/src/mod_private.erl @@ -49,7 +49,7 @@ -callback remove_user(binary(), binary()) -> any(). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), ejabberd_hooks:add(remove_user, Host, ?MODULE, @@ -71,7 +71,7 @@ reload(Host, NewOpts, OldOpts) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_PRIVATE, ?MODULE, process_sm_iq, IQDisc); diff --git a/src/mod_proxy65_service.erl b/src/mod_proxy65_service.erl index 6a0b1fc16..b27f3bc20 100644 --- a/src/mod_proxy65_service.erl +++ b/src/mod_proxy65_service.erl @@ -60,7 +60,7 @@ reload(Host, NewOpts, OldOpts) -> init([Host, Opts]) -> process_flag(trap_exit, true), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), MyHost = gen_mod:get_opt_host(Host, Opts, <<"proxy.@HOST@">>), gen_iq_handler:add_iq_handler(ejabberd_local, MyHost, ?NS_DISCO_INFO, ?MODULE, process_disco_info, IQDisc), @@ -91,8 +91,8 @@ handle_call(_Request, _From, State) -> handle_cast({reload, ServerHost, NewOpts, OldOpts}, State) -> NewHost = gen_mod:get_opt_host(ServerHost, NewOpts, <<"proxy.@HOST@">>), OldHost = gen_mod:get_opt_host(ServerHost, OldOpts, <<"proxy.@HOST@">>), - NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, one_queue), - OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, one_queue), + NewIQDisc = gen_mod:get_opt(iqdisc, NewOpts, gen_iq_handler:iqdisc(ServerHost)), + OldIQDisc = gen_mod:get_opt(iqdisc, OldOpts, gen_iq_handler:iqdisc(ServerHost)), if (NewIQDisc /= OldIQDisc) or (NewHost /= OldHost) -> gen_iq_handler:add_iq_handler(ejabberd_local, NewHost, ?NS_DISCO_INFO, ?MODULE, process_disco_info, NewIQDisc), diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index d5a4fd9c4..2a9fa18c7 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -246,7 +246,7 @@ init([ServerHost, Opts]) -> ejabberd_router:register_route(Host, ServerHost), Access = gen_mod:get_opt(access_createnode, Opts, all), PepOffline = gen_mod:get_opt(ignore_pep_from_offline, Opts, true), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), LastItemCache = gen_mod:get_opt(last_item_cache, Opts, false), MaxItemsNode = gen_mod:get_opt(max_items_node, Opts, ?MAXITEMS), MaxSubsNode = gen_mod:get_opt(max_subscriptions_node, Opts), diff --git a/src/mod_register.erl b/src/mod_register.erl index 2d6442ba7..1c4de1301 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -44,7 +44,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_REGISTER, ?MODULE, process_iq, IQDisc), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, @@ -69,7 +69,7 @@ stop(Host) -> ?NS_REGISTER). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_REGISTER, ?MODULE, process_iq, IQDisc), diff --git a/src/mod_roster.erl b/src/mod_roster.erl index 819e6a895..f2bfc59de 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -84,7 +84,7 @@ {subscription(), [binary()]}. start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), Mod = gen_mod:db_mod(Host, Opts, ?MODULE), Mod:init(Host, Opts), ejabberd_hooks:add(roster_get, Host, ?MODULE, @@ -146,7 +146,7 @@ reload(Host, NewOpts, OldOpts) -> true -> ok end, - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_ROSTER, ?MODULE, process_iq, IQDisc); diff --git a/src/mod_sic.erl b/src/mod_sic.erl index 73d4f9de2..a2b3256eb 100644 --- a/src/mod_sic.erl +++ b/src/mod_sic.erl @@ -39,7 +39,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_SIC_0, ?MODULE, process_local_iq, IQDisc), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_SIC_0, @@ -56,7 +56,7 @@ stop(Host) -> gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_SIC_1). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_SIC_0, ?MODULE, process_local_iq, IQDisc), diff --git a/src/mod_stats.erl b/src/mod_stats.erl index 88ff7d0cb..92a6627c5 100644 --- a/src/mod_stats.erl +++ b/src/mod_stats.erl @@ -38,7 +38,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_STATS, ?MODULE, process_iq, IQDisc). diff --git a/src/mod_time.erl b/src/mod_time.erl index ba167ad80..c54f3d271 100644 --- a/src/mod_time.erl +++ b/src/mod_time.erl @@ -41,7 +41,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_TIME, ?MODULE, process_local_iq, IQDisc). @@ -50,7 +50,7 @@ stop(Host) -> ?NS_TIME). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_TIME, ?MODULE, process_local_iq, IQDisc); diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl index 90f270b54..00fd4bbc0 100644 --- a/src/mod_vcard.erl +++ b/src/mod_vcard.erl @@ -82,7 +82,7 @@ init([Host, Opts]) -> Mod:init(Host, Opts), ejabberd_hooks:add(remove_user, Host, ?MODULE, remove_user, 50), - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_VCARD, ?MODULE, process_local_iq, IQDisc), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, diff --git a/src/mod_version.erl b/src/mod_version.erl index 2f43cd891..5f613e02a 100644 --- a/src/mod_version.erl +++ b/src/mod_version.erl @@ -40,7 +40,7 @@ -include("xmpp.hrl"). start(Host, Opts) -> - IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue), + IQDisc = gen_mod:get_opt(iqdisc, Opts, gen_iq_handler:iqdisc(Host)), gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_VERSION, ?MODULE, process_local_iq, IQDisc). @@ -50,7 +50,7 @@ stop(Host) -> ?NS_VERSION). reload(Host, NewOpts, OldOpts) -> - case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, one_queue) of + case gen_mod:is_equal_opt(iqdisc, NewOpts, OldOpts, gen_iq_handler:iqdisc(Host)) of {false, IQDisc, _} -> gen_iq_handler:add_iq_handler(ejabberd_local, Host, ?NS_VERSION, ?MODULE, process_local_iq, IQDisc);