summaryrefslogtreecommitdiff
path: root/src/mod_muc_room.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-05 10:35:31 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-07-05 10:35:31 +0300
commitb3caade0a015e99657b5eedfef80a32710a4e31b (patch)
tree90fdfad0f73d5f5724b07dbd85d3819b97a641a0 /src/mod_muc_room.erl
parentPropagate max_fsm_queue to all modules started as gen_server (diff)
Distribute routing of MUC messages accross all CPU cores
Also relay as less stanzas as possible through mod_muc workers
Diffstat (limited to 'src/mod_muc_room.erl')
-rw-r--r--src/mod_muc_room.erl13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index bbbd3a2e..b0d9da27 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -93,23 +93,35 @@
%%%----------------------------------------------------------------------
%%% API
%%%----------------------------------------------------------------------
+-spec start(binary(), binary(), mod_muc:access(), binary(), non_neg_integer(),
+ atom(), jid(), binary(), [{atom(), term()}], ram | file) ->
+ {ok, pid()} | {error, any()}.
start(Host, ServerHost, Access, Room, HistorySize, RoomShaper,
Creator, Nick, DefRoomOpts, QueueType) ->
p1_fsm:start(?MODULE, [Host, ServerHost, Access, Room, HistorySize,
RoomShaper, Creator, Nick, DefRoomOpts, QueueType],
?FSMOPTS).
+-spec start(binary(), binary(), mod_muc:access(), binary(), non_neg_integer(),
+ atom(), [{atom(), term()}], ram | file) ->
+ {ok, pid()} | {error, any()}.
start(Host, ServerHost, Access, Room, HistorySize, RoomShaper, Opts, QueueType) ->
p1_fsm:start(?MODULE, [Host, ServerHost, Access, Room, HistorySize,
RoomShaper, Opts, QueueType],
?FSMOPTS).
+-spec start_link(binary(), binary(), mod_muc:access(), binary(), non_neg_integer(),
+ atom(), jid(), binary(), [{atom(), term()}], ram | file) ->
+ {ok, pid()} | {error, any()}.
start_link(Host, ServerHost, Access, Room, HistorySize, RoomShaper,
Creator, Nick, DefRoomOpts, QueueType) ->
p1_fsm:start_link(?MODULE, [Host, ServerHost, Access, Room, HistorySize,
RoomShaper, Creator, Nick, DefRoomOpts, QueueType],
?FSMOPTS).
+-spec start_link(binary(), binary(), mod_muc:access(), binary(), non_neg_integer(),
+ atom(), [{atom(), term()}], ram | file) ->
+ {ok, pid()} | {error, any()}.
start_link(Host, ServerHost, Access, Room, HistorySize, RoomShaper, Opts, QueueType) ->
p1_fsm:start_link(?MODULE, [Host, ServerHost, Access, Room, HistorySize,
RoomShaper, Opts, QueueType],
@@ -756,6 +768,7 @@ terminate(Reason, _StateName,
%%%----------------------------------------------------------------------
-spec route(pid(), stanza()) -> ok.
route(Pid, Packet) ->
+ ?DEBUG("Routing to MUC room ~p:~n~s", [Pid, xmpp:pp(Packet)]),
#jid{lresource = Nick} = xmpp:get_to(Packet),
p1_fsm:send_event(Pid, {route, Nick, Packet}).