]> granicus.if.org Git - ejabberd/commitdiff
Don't block contacts with subscription=to in mod_block_strangers (#1609)
authorAlexey Shchepin <alexey@process-one.net>
Tue, 21 Mar 2017 12:42:24 +0000 (15:42 +0300)
committerAlexey Shchepin <alexey@process-one.net>
Tue, 21 Mar 2017 12:42:38 +0000 (15:42 +0300)
src/mod_block_strangers.erl

index dfc9f9b744389114506dbe53d047886f99e5ae4c..8072fa8743d3e10f5bc1bbc461fa95eb56c04486 100644 (file)
@@ -57,13 +57,19 @@ filter_packet({#message{} = Msg, State} = Acc) ->
     From = xmpp:get_from(Msg),
     LFrom = jid:tolower(From),
     LBFrom = jid:remove_resource(LFrom),
-    #{pres_a := PresA} = State,
+    #{pres_a := PresA,
+      pres_t := PresT,
+      pres_f := PresF} = State,
     case (Msg#message.body == [] andalso
           Msg#message.subject == [])
         orelse ejabberd_router:is_my_route(From#jid.lserver)
         orelse (?SETS):is_element(LFrom, PresA)
-       orelse (?SETS):is_element(LBFrom, PresA)
-        orelse sets_bare_member(LBFrom, PresA) of
+        orelse (?SETS):is_element(LBFrom, PresA)
+        orelse sets_bare_member(LBFrom, PresA)
+        orelse (?SETS):is_element(LFrom, PresT)
+        orelse (?SETS):is_element(LBFrom, PresT)
+        orelse (?SETS):is_element(LFrom, PresF)
+        orelse (?SETS):is_element(LBFrom, PresF) of
        true ->
            Acc;
        false ->