aboutsummaryrefslogtreecommitdiff
path: root/src/mod_offline.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_offline.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_offline.erl')
-rw-r--r--src/mod_offline.erl24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/mod_offline.erl b/src/mod_offline.erl
index 87a136853..1d9417117 100644
--- a/src/mod_offline.erl
+++ b/src/mod_offline.erl
@@ -476,14 +476,22 @@ store_packet(From, To, Packet) ->
case check_event(From, To, Packet) of
true ->
#jid{luser = LUser, lserver = LServer} = To,
- TimeStamp = p1_time_compat:timestamp(),
- #xmlel{children = Els} = Packet,
- Expire = find_x_expire(TimeStamp, Els),
- gen_mod:get_module_proc(To#jid.lserver, ?PROCNAME) !
- #offline_msg{us = {LUser, LServer},
- timestamp = TimeStamp, expire = Expire,
- from = From, to = To, packet = Packet},
- stop;
+ case ejabberd_hooks:run_fold(store_offline_message, LServer,
+ Packet, [From, To]) of
+ drop ->
+ ok;
+ NewPacket ->
+ TimeStamp = p1_time_compat:timestamp(),
+ #xmlel{children = Els} = NewPacket,
+ Expire = find_x_expire(TimeStamp, Els),
+ gen_mod:get_module_proc(To#jid.lserver, ?PROCNAME) !
+ #offline_msg{us = {LUser, LServer},
+ timestamp = TimeStamp,
+ expire = Expire,
+ from = From, to = To,
+ packet = NewPacket},
+ stop
+ end;
_ -> ok
end;
false -> ok