summaryrefslogtreecommitdiff
path: root/src/mod_mam.erl
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2021-03-01 22:19:20 +0100
committerBadlop <badlop@process-one.net>2021-03-08 16:33:23 +0100
commit31884f6c9d8686ad2c15b04c8c585e23e37be0c2 (patch)
treeaa48ddbf3c85eec53f048a6ea210046133b10d95 /src/mod_mam.erl
parentRemove support for HiPE, it was experimental and Erlang/OTP 24 removes it (diff)
Fix remove_mam_for_user_with_peer when removing room archive (#3536)
Diffstat (limited to 'src/mod_mam.erl')
-rw-r--r--src/mod_mam.erl8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mod_mam.erl b/src/mod_mam.erl
index 4641836f..12542bfa 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) ->