# HG changeset patch # User Waqas Hussain # Date 1361905004 -18000 # Node ID bb81c13d2c6fafb9b2a7a7fd3e8ce59567f1eef4 # Parent da7857891eb87336e9905c83c6f8570917ff4ad7 MUC: Always return when a node is present in service discovery requests. diff -r da7857891eb8 -r bb81c13d2c6f plugins/muc/mod_muc.lua --- a/plugins/muc/mod_muc.lua Tue Feb 26 20:31:41 2013 +0500 +++ b/plugins/muc/mod_muc.lua Tue Feb 26 23:56:44 2013 +0500 @@ -126,9 +126,10 @@ if type == "error" or type == "result" then return; end if stanza.name == "iq" and type == "get" then local xmlns = stanza.tags[1].attr.xmlns; - if xmlns == "http://jabber.org/protocol/disco#info" then + local node = stanza.tags[1].attr.node; + if xmlns == "http://jabber.org/protocol/disco#info" and not node then origin.send(get_disco_info(stanza)); - elseif xmlns == "http://jabber.org/protocol/disco#items" then + elseif xmlns == "http://jabber.org/protocol/disco#items" and not node then origin.send(get_disco_items(stanza)); elseif xmlns == "http://jabber.org/protocol/muc#unique" then origin.send(st.reply(stanza):tag("unique", {xmlns = xmlns}):text(uuid_gen())); -- FIXME Random UUIDs can theoretically have collisions diff -r da7857891eb8 -r bb81c13d2c6f plugins/muc/muc.lib.lua --- a/plugins/muc/muc.lib.lua Tue Feb 26 20:31:41 2013 +0500 +++ b/plugins/muc/muc.lib.lua Tue Feb 26 23:56:44 2013 +0500 @@ -765,13 +765,9 @@ local type = stanza.attr.type; local xmlns = stanza.tags[1] and stanza.tags[1].attr.xmlns; if stanza.name == "iq" then - if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" then - if stanza.tags[1].attr.node then - origin.send(st.error_reply(stanza, "cancel", "feature-not-implemented")); - else - origin.send(self:get_disco_info(stanza)); - end - elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" then + if xmlns == "http://jabber.org/protocol/disco#info" and type == "get" and not stanza.tags[1].attr.node then + origin.send(self:get_disco_info(stanza)); + elseif xmlns == "http://jabber.org/protocol/disco#items" and type == "get" and not stanza.tags[1].attr.node then origin.send(self:get_disco_items(stanza)); elseif xmlns == "http://jabber.org/protocol/muc#admin" then local actor = stanza.attr.from;