diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-06-27 15:02:03 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-06-27 15:02:03 +0300 |
commit | 644873dae9a5c91a1e40c3e09703bd01a151217a (patch) | |
tree | a15ced0faf7f1d6317fb228972a6837e6e544638 /src/mod_block_strangers.erl | |
parent | Use lists:foldl/3 (diff) |
Don't check packets sent to self
Diffstat (limited to 'src/mod_block_strangers.erl')
-rw-r--r-- | src/mod_block_strangers.erl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mod_block_strangers.erl b/src/mod_block_strangers.erl index 6f25b6417..fbbef1899 100644 --- a/src/mod_block_strangers.erl +++ b/src/mod_block_strangers.erl @@ -190,6 +190,8 @@ maybe_adjust_from(#message{} = Msg) -> need_check(Pkt) -> To = xmpp:get_to(Pkt), From = xmpp:get_from(Pkt), + IsSelf = To#jid.luser == From#jid.luser andalso + To#jid.lserver == From#jid.lserver, LServer = To#jid.lserver, IsEmpty = case Pkt of #message{body = [], subject = []} -> @@ -199,7 +201,8 @@ need_check(Pkt) -> end, AllowLocalUsers = gen_mod:get_module_opt(LServer, ?MODULE, allow_local_users), Access = gen_mod:get_module_opt(LServer, ?MODULE, access), - not (IsEmpty orelse acl:match_rule(LServer, Access, From) == allow + not (IsSelf orelse IsEmpty + orelse acl:match_rule(LServer, Access, From) == allow orelse ((AllowLocalUsers orelse From#jid.luser == <<"">>) andalso ejabberd_router:is_my_host(From#jid.lserver))). |