diff options
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r-- | src/ejabberd_c2s.erl | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 6df6766ca..ef4614aa2 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1276,7 +1276,7 @@ handle_info({route, From, To, Packet}, StateName, StateData) -> case ejabberd_hooks:run_fold( feature_check_packet, StateData#state.server, allow, - [StateData#state.user, + [StateData#state.jid, StateData#state.server, StateData#state.pres_last, {From, To, Packet}, @@ -1392,7 +1392,8 @@ terminate(_Reason, StateName, StateData) -> presence_broadcast( StateData, From, StateData#state.pres_i, Packet) end - end; + end, + bounce_messages(); _ -> ok end, @@ -2185,6 +2186,15 @@ fsm_limit_opts(Opts) -> end end. +bounce_messages() -> + receive + {route, From, To, El} -> + ejabberd_router:route(From, To, El), + bounce_messages() + after 0 -> + ok + end. + %%%---------------------------------------------------------------------- %%% JID Set memory footprint reduction code %%%---------------------------------------------------------------------- |