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
path: root/src
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2018-01-24 13:49:31 +0300
committerHolger Weiss <holger@zedat.fu-berlin.de>2018-01-24 13:49:31 +0300
commite8f1de878519582b262fa62f90fe134e5315667a (patch)
treebfee7135151e9bf58ccb0a3c872e8688b03db896 /src
parent1f6c0022dd04cbaf3913d1628c4de25d8bdea826 (diff)
mod_block_strangers: Bounce groupchat to bare JID
If a blocked message is of type 'groupchat', address the error message to the bare JID (rather than sending it as MUC PM).
Diffstat (limited to 'src')
-rw-r--r--src/mod_block_strangers.erl9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mod_block_strangers.erl b/src/mod_block_strangers.erl
index d427ef9a6..e865754e2 100644
--- a/src/mod_block_strangers.erl
+++ b/src/mod_block_strangers.erl
@@ -106,7 +106,8 @@ check_message(#message{from = From, to = To, lang = Lang} = Msg) ->
Drop ->
Txt = <<"Messages from strangers are rejected">>,
Err = xmpp:err_policy_violation(Txt, Lang),
- ejabberd_router:route_error(Msg, Err),
+ Msg1 = maybe_adjust_from(Msg),
+ ejabberd_router:route_error(Msg1, Err),
deny;
true ->
allow
@@ -118,6 +119,12 @@ check_message(#message{from = From, to = To, lang = Lang} = Msg) ->
allow
end.
+-spec maybe_adjust_from(message()) -> message().
+maybe_adjust_from(#message{type = groupchat, from = From} = Msg) ->
+ Msg#message{from = jid:remove_resource(From)};
+maybe_adjust_from(#message{} = Msg) ->
+ Msg.
+
-spec check_subscription(jid(), jid()) -> none | some.
check_subscription(From, To) ->
{LocalUser, LocalServer, _} = jid:tolower(To),