From: Holger Weiss Date: Sun, 24 Jul 2016 18:55:11 +0000 (+0200) Subject: Don't return error for blocked MUC PMs X-Git-Tag: 16.08~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4b0d71d402baffd44f6dc523218ba836abd8458f;p=ejabberd 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. --- 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;