From: Badlop Date: Wed, 12 Aug 2015 10:40:37 +0000 (+0200) Subject: Room response to disco#info node muc#traffic should be an error (EJAB-741) X-Git-Tag: 15.09~80 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab0f488dda3f9efc260b30ebc3611a95a84dfcda;p=ejabberd Room response to disco#info node muc#traffic should be an error (EJAB-741) --- diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index c1bbbe5c9..41d4a3dfa 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -440,7 +440,7 @@ normal_state({route, From, <<"">>, ejabberd_router:route(StateData#state.jid, From, jlib:iq_to_xml(IQRes)), {next_state, normal_state, StateData}; #iq{type = Type, xmlns = XMLNS, lang = Lang, - sub_el = #xmlel{name = SubElName} = SubEl} = IQ + sub_el = #xmlel{name = SubElName, attrs = Attrs} = SubEl} = IQ when (XMLNS == (?NS_MUC_ADMIN)) or (XMLNS == (?NS_MUC_OWNER)) or (XMLNS == (?NS_DISCO_INFO)) @@ -453,7 +453,10 @@ normal_state({route, From, <<"">>, ?NS_MUC_OWNER -> process_iq_owner(From, Type, Lang, SubEl, StateData); ?NS_DISCO_INFO -> - process_iq_disco_info(From, Type, Lang, StateData); + case xml:get_attr(<<"node">>, Attrs) of + false -> process_iq_disco_info(From, Type, Lang, StateData); + {value, _} -> {error, ?ERR_SERVICE_UNAVAILABLE} + end; ?NS_DISCO_ITEMS -> process_iq_disco_items(From, Type, Lang, StateData); ?NS_VCARD ->