aboutsummaryrefslogtreecommitdiff
path: root/src/mod_mam.erl
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2016-09-13 14:29:47 +0200
committerChristophe Romain <christophe.romain@process-one.net>2016-09-13 14:31:39 +0200
commit405a0a21c1f2a7b7198c75faa207897d3666c90c (patch)
tree2faecf0f75023d3c703ce7b2b60fad8c23054251 /src/mod_mam.erl
parentAllow to create room with custom config (diff)
parentMerge branch 'push-requirements' of https://github.com/weiss/ejabberd into we... (diff)
Merge pull request #1249 from weiss:push-requirements16.09
Diffstat (limited to 'src/mod_mam.erl')
-rw-r--r--src/mod_mam.erl22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/mod_mam.erl b/src/mod_mam.erl
index 6ea757223..f6d3c8f1f 100644
--- a/src/mod_mam.erl
+++ b/src/mod_mam.erl
@@ -718,8 +718,14 @@ store_msg(C2SState, Pkt, LUser, LServer, Peer, Dir) ->
case should_archive_peer(C2SState, Prefs, Peer) of
true ->
US = {LUser, LServer},
- Mod = gen_mod:db_mod(LServer, ?MODULE),
- Mod:store(Pkt, LServer, US, chat, Peer, <<"">>, Dir);
+ case ejabberd_hooks:run_fold(store_mam_message, LServer, Pkt,
+ [LUser, LServer, Peer, chat, Dir]) of
+ drop ->
+ pass;
+ NewPkt ->
+ Mod = gen_mod:db_mod(LServer, ?MODULE),
+ Mod:store(NewPkt, LServer, US, chat, Peer, <<"">>, Dir)
+ end;
false ->
pass
end.
@@ -727,10 +733,16 @@ store_msg(C2SState, Pkt, LUser, LServer, Peer, Dir) ->
store_muc(MUCState, Pkt, RoomJID, Peer, Nick) ->
case should_archive_muc(Pkt) of
true ->
- LServer = MUCState#state.server_host,
{U, S, _} = jid:tolower(RoomJID),
- Mod = gen_mod:db_mod(LServer, ?MODULE),
- Mod:store(Pkt, LServer, {U, S}, groupchat, Peer, Nick, recv);
+ LServer = MUCState#state.server_host,
+ case ejabberd_hooks:run_fold(store_mam_message, LServer, Pkt,
+ [U, S, Peer, groupchat, recv]) of
+ drop ->
+ pass;
+ NewPkt ->
+ Mod = gen_mod:db_mod(LServer, ?MODULE),
+ Mod:store(NewPkt, LServer, {U, S}, groupchat, Peer, Nick, recv)
+ end;
false ->
pass
end.