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
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2016-07-24 21:55:11 +0300
committerHolger Weiss <holger@zedat.fu-berlin.de>2016-07-24 21:55:11 +0300
commit4b0d71d402baffd44f6dc523218ba836abd8458f (patch)
treeaa4c491886b662f53f44e71fdbd2df702cc7a7ad /src/ejabberd_c2s.erl
parentd4d1941133e801562bd5ca73cc00d85b5f2be95f (diff)
Don't return error for blocked MUC PMs
If a message stanza is blocked as per XEP-0016 or XEP-0191 and the stanza is marked as a private MUC message, don't return an error. This makes sure users won't be kicked from MUC rooms when blocking other participants.
Diffstat (limited to 'src/ejabberd_c2s.erl')
-rw-r--r--src/ejabberd_c2s.erl17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl
index 74ce74d62..0ffca7179 100644
--- a/src/ejabberd_c2s.erl
+++ b/src/ejabberd_c2s.erl
@@ -1632,11 +1632,18 @@ handle_info({route, From, To,
<<"groupchat">> -> ok;
<<"headline">> -> ok;
_ ->
- Err =
- jlib:make_error_reply(Packet,
- ?ERR_SERVICE_UNAVAILABLE),
- ejabberd_router:route(To, From,
- Err)
+ case fxml:get_subtag_with_xmlns(Packet,
+ <<"x">>,
+ ?NS_MUC_USER)
+ of
+ false ->
+ Err =
+ jlib:make_error_reply(Packet,
+ ?ERR_SERVICE_UNAVAILABLE),
+ ejabberd_router:route(To, From,
+ Err);
+ _ -> ok
+ end
end,
{false, Attrs, StateData}
end;