]> granicus.if.org Git - ejabberd/commitdiff
mod_block_strangers: Bounce an error message
authorHolger Weiss <holger@zedat.fu-berlin.de>
Tue, 2 Jan 2018 23:38:50 +0000 (00:38 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Wed, 3 Jan 2018 14:41:30 +0000 (15:41 +0100)
Return a stanza error when a message is rejected, in order to make
legitimate users aware of the issue.

Closes #2197.

src/mod_block_strangers.erl

index b2c56f36bf4d472c6af289639065d6736e8794a9..afb0fbd9a9bfbf3c1f3201c20dc65cb7225e858a 100644 (file)
@@ -79,7 +79,7 @@ filter_offline_msg({_Action, #message{} = Msg} = Acc) ->
        deny -> {stop, {drop, Msg}}
     end.
 
-check_message(#message{from = From, to = To} = Msg) ->
+check_message(#message{from = From, to = To, lang = Lang} = Msg) ->
     LServer = To#jid.lserver,
     AllowLocalUsers =
         gen_mod:get_module_opt(LServer, ?MODULE, allow_local_users, true),
@@ -95,7 +95,7 @@ check_message(#message{from = From, to = To} = Msg) ->
                    if
                        Log ->
                            ?INFO_MSG("~s message from stranger ~s to ~s",
-                                     [if Drop -> "Dropping";
+                                     [if Drop -> "Rejecting";
                                          true -> "Allow"
                                       end,
                                       jid:encode(From), jid:encode(To)]);
@@ -104,6 +104,9 @@ check_message(#message{from = From, to = To} = Msg) ->
                    end,
                    if
                        Drop ->
+                           Txt = <<"Messages from strangers are rejected">>,
+                           Err = xmpp:err_policy_violation(Txt, Lang),
+                           ejabberd_router:route_error(Msg, Err),
                            deny;
                        true ->
                            allow