]> granicus.if.org Git - ejabberd/commitdiff
Don't check packets sent to self
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 27 Jun 2018 12:02:03 +0000 (15:02 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 27 Jun 2018 12:02:03 +0000 (15:02 +0300)
src/mod_block_strangers.erl

index 6f25b6417f1fbbdeee7f30a37e90e0d2c1bcd31b..fbbef18990b8a450abcd187434e07ebd76d53fdd 100644 (file)
@@ -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))).