diff options
Diffstat (limited to 'src/mod_announce.erl')
-rw-r--r-- | src/mod_announce.erl | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mod_announce.erl b/src/mod_announce.erl index 495cbf946..1d93cbe65 100644 --- a/src/mod_announce.erl +++ b/src/mod_announce.erl @@ -609,8 +609,8 @@ announce_all(From, To, Packet) -> Local = jid:make(To#jid.server), lists:foreach( fun({User, Server}) -> - Dest = jid:make(User, Server), - ejabberd_router:route(Local, Dest, Packet) + Dest = jid:make(User, Server, <<>>), + ejabberd_router:route(Local, Dest, add_store_hint(Packet)) end, ejabberd_auth:get_vh_registered_users(Host)) end. @@ -626,8 +626,8 @@ announce_all_hosts_all(From, To, Packet) -> Local = jid:make(To#jid.server), lists:foreach( fun({User, Server}) -> - Dest = jid:make(User, Server), - ejabberd_router:route(Local, Dest, Packet) + Dest = jid:make(User, Server, <<>>), + ejabberd_router:route(Local, Dest, add_store_hint(Packet)) end, ejabberd_auth:dirty_get_registered_users()) end. @@ -813,7 +813,7 @@ send_announcement_to_all(Host, SubjectS, BodyS) -> lists:foreach( fun({U, S, R}) -> Dest = jid:make(U, S, R), - ejabberd_router:route(Local, Dest, Packet) + ejabberd_router:route(Local, Dest, add_store_hint(Packet)) end, Sessions). -spec get_access(global | binary()) -> atom(). @@ -823,6 +823,10 @@ get_access(Host) -> fun(A) -> A end, none). +-spec add_store_hint(stanza()) -> stanza(). +add_store_hint(El) -> + xmpp:set_subtag(El, #hint{type = store}). + %%------------------------------------------------------------------------- export(LServer) -> Mod = gen_mod:db_mod(LServer, ?MODULE), |