diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-01-24 13:49:31 +0300 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2018-01-24 13:49:31 +0300 |
commit | e8f1de878519582b262fa62f90fe134e5315667a (patch) | |
tree | bfee7135151e9bf58ccb0a3c872e8688b03db896 /src | |
parent | 1f6c0022dd04cbaf3913d1628c4de25d8bdea826 (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.erl | 9 |
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), |