From fedfe5427c7978f7000148f3226a156ff3a3d103 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Mon, 16 Jan 2017 18:13:48 +0300 Subject: Add mod_block_strangers --- src/ejabberd_c2s.erl | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/ejabberd_c2s.erl') diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index ecd6321d4..113be0910 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -546,7 +546,7 @@ process_iq_in(State, #iq{} = IQ) -> -spec process_message_in(state(), message()) -> {boolean(), state()}. process_message_in(State, #message{type = T} = Msg) -> - case privacy_check_packet(State, Msg, in) of + case filter_incoming_message(State, Msg) of allow -> {true, State}; deny when T == groupchat; T == headline -> @@ -561,6 +561,24 @@ process_message_in(State, #message{type = T} = Msg) -> {false, State} end. +filter_incoming_message(State, Msg) -> + case privacy_check_packet(State, Msg, in) of + allow -> + #{lserver := LServer} = State, + case ejabberd_hooks:run_fold( + c2s_filter_incoming_packet, + LServer, + allow, + [State, Msg]) of + allow -> + allow; + deny -> + deny + end; + deny -> + deny + end. + -spec process_presence_in(state(), presence()) -> {boolean(), state()}. process_presence_in(#{lserver := LServer, pres_a := PresA} = State0, #presence{from = From, to = To, type = T} = Pres) -> -- cgit v1.2.3