aboutsummaryrefslogtreecommitdiff
path: root/src/mod_muc.erl
diff options
context:
space:
mode:
authorEvgeny Khramtsov <ekhramtsov@process-one.net>2019-08-04 21:46:18 +0300
committerEvgeny Khramtsov <ekhramtsov@process-one.net>2019-08-04 21:46:18 +0300
commit2168489ddf96a88d4b4885a1a0a986acb25754c5 (patch)
tree6eb6aa952467a4b30977d603cd05c6644c259893 /src/mod_muc.erl
parentUse tagged version for yconf as well (diff)
Don't retain module option on gen_mod supervisor
When module's options were updated (e.g. by reloading ejabberd.yml) and, later, the module's process crashed, gen_mod supervisor restarts the process with outdated options. This is now fixed.
Diffstat (limited to 'src/mod_muc.erl')
-rw-r--r--src/mod_muc.erl11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mod_muc.erl b/src/mod_muc.erl
index d50e6552e..36cebb664 100644
--- a/src/mod_muc.erl
+++ b/src/mod_muc.erl
@@ -34,7 +34,7 @@
%% API
-export([start/2,
stop/1,
- start_link/3,
+ start_link/2,
reload/3,
room_destroyed/4,
store_room/4,
@@ -114,7 +114,7 @@
%% API
%%====================================================================
start(Host, Opts) ->
- case mod_muc_sup:start(Host, Opts) of
+ case mod_muc_sup:start(Host) of
{ok, _} ->
MyHosts = gen_mod:get_opt_hosts(Opts),
Mod = gen_mod:db_mod(Opts, ?MODULE),
@@ -171,9 +171,9 @@ reload(ServerHost, NewOpts, OldOpts) ->
depends(_Host, _Opts) ->
[{mod_mam, soft}].
-start_link(Host, Opts, I) ->
+start_link(Host, I) ->
Proc = procname(Host, I),
- ?GEN_SERVER:start_link({local, Proc}, ?MODULE, [Host, Opts, I],
+ ?GEN_SERVER:start_link({local, Proc}, ?MODULE, [Host, I],
ejabberd_config:fsm_limit_opts([])).
-spec procname(binary(), pos_integer() | {binary(), binary()}) -> atom().
@@ -365,8 +365,9 @@ get_online_rooms_by_user(ServerHost, LUser, LServer) ->
%% gen_server callbacks
%%====================================================================
-spec init(list()) -> {ok, state()}.
-init([Host, Opts, Worker]) ->
+init([Host, Worker]) ->
process_flag(trap_exit, true),
+ Opts = gen_mod:get_module_opts(Host, ?MODULE),
MyHosts = gen_mod:get_opt_hosts(Opts),
register_routes(Host, MyHosts, Worker),
register_iq_handlers(MyHosts, Worker),