Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2017-01-16 18:13:48 +0300
committerAlexey Shchepin <alexey@process-one.net>2017-01-16 18:14:14 +0300
commitfedfe5427c7978f7000148f3226a156ff3a3d103 (patch)
tree3573b631947dd2ce8a8f6cc8ac879e0ed9307c93 /src/ejabberd_c2s.erl
parent22c25e4413adb5951d06fdbcd3f1dd94e6e29fcf (diff)
Add mod_block_strangers
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl20
1 files changed, 19 insertions, 1 deletions
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) ->