aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ejabberd_s2s.erl7
-rw-r--r--src/mod_metrics.erl5
2 files changed, 8 insertions, 4 deletions
diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl
index f71d87fc8..f710cae68 100644
--- a/src/ejabberd_s2s.erl
+++ b/src/ejabberd_s2s.erl
@@ -351,8 +351,11 @@ route(Packet) ->
{ok, Pid} when is_pid(Pid) ->
?DEBUG("Sending to process ~p~n", [Pid]),
#jid{lserver = MyServer} = From,
- ejabberd_hooks:run(s2s_send_packet, MyServer, [Packet]),
- ejabberd_s2s_out:route(Pid, Packet);
+ case ejabberd_hooks:run_fold(s2s_send_packet, MyServer, Packet,
+ []) of
+ drop -> ok;
+ Packet1 -> ejabberd_s2s_out:route(Pid, Packet1)
+ end;
{error, Reason} ->
Lang = xmpp:get_lang(Packet),
Err = case Reason of
diff --git a/src/mod_metrics.erl b/src/mod_metrics.erl
index 62229595c..81c39d59e 100644
--- a/src/mod_metrics.erl
+++ b/src/mod_metrics.erl
@@ -103,10 +103,11 @@ user_receive_packet({Packet, #{jid := #jid{lserver = LServer}} = C2SState}) ->
push(LServer, user_receive_packet),
{Packet, C2SState}.
--spec s2s_send_packet(stanza()) -> any().
+-spec s2s_send_packet(stanza()) -> stanza().
s2s_send_packet(Packet) ->
#jid{lserver = LServer} = xmpp:get_from(Packet),
- push(LServer, s2s_send_packet).
+ push(LServer, s2s_send_packet),
+ Packet.
-spec s2s_receive_packet({stanza(), ejabberd_s2s_in:state()}) ->
{stanza(), ejabberd_s2s_in:state()}.