From 31884f6c9d8686ad2c15b04c8c585e23e37be0c2 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 1 Mar 2021 22:19:20 +0100 Subject: [PATCH] Fix remove_mam_for_user_with_peer when removing room archive (#3536) --- src/mod_mam.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 4641836f6..12542bfa5 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -326,7 +326,7 @@ remove_mam_for_user_with_peer(User, Server, Peer) -> LServer = jid:nameprep(Server), try jid:decode(Peer) of Jid -> - Mod = gen_mod:db_mod(LServer, ?MODULE), + Mod = get_module_host(LServer), case Mod:remove_from_archive(LUser, LServer, Jid) of ok -> {ok, <<"MAM archive removed">>}; @@ -339,6 +339,12 @@ remove_mam_for_user_with_peer(User, Server, Peer) -> {error, <<"Invalid peer JID">>} end. +get_module_host(LServer) -> + try gen_mod:db_mod(LServer, ?MODULE) + catch error:{module_not_loaded, ?MODULE, LServer} -> + gen_mod:db_mod(ejabberd_router:host_of_route(LServer), ?MODULE) + end. + -spec get_room_config([muc_roomconfig:property()], mod_muc_room:state(), jid(), binary()) -> [muc_roomconfig:property()]. get_room_config(Fields, RoomState, _From, _Lang) ->