From: Evgeny Khramtsov Date: Mon, 15 Jul 2019 11:10:45 +0000 (+0300) Subject: Only respond with occupants list to disco#items with empty node X-Git-Tag: 19.08~79 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=104c4093dc7331c8963e08be3c19df61febd26be;p=ejabberd Only respond with occupants list to disco#items with empty node Fixes #2942 --- diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index a2f351c9b..420b99598 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -4093,7 +4093,8 @@ iq_disco_info_extras(Lang, StateData, Static) -> process_iq_disco_items(_From, #iq{type = set, lang = Lang}, _StateData) -> Txt = ?T("Value 'set' of 'type' attribute is not allowed"), {error, xmpp:err_not_allowed(Txt, Lang)}; -process_iq_disco_items(From, #iq{type = get}, StateData) -> +process_iq_disco_items(From, #iq{type = get, sub_els = [#disco_items{node = <<>>}]}, + StateData) -> case (StateData#state.config)#config.public_list of true -> {result, get_mucroom_disco_items(StateData)}; @@ -4107,7 +4108,10 @@ process_iq_disco_items(From, #iq{type = get}, StateData) -> %% (http://xmpp.org/extensions/xep-0045.html#disco-roomitems) {result, #disco_items{}} end - end. + end; +process_iq_disco_items(_From, #iq{lang = Lang}, _StateData) -> + Txt = ?T("Node not found"), + {error, xmpp:err_item_not_found(Txt, Lang)}. -spec process_iq_captcha(jid(), iq(), state()) -> {error, stanza_error()} | {result, undefined}.