aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-09-13 15:11:08 +0100
committerMatthew Wild <mwild1@gmail.com>2018-09-13 15:11:08 +0100
commitd7abfeeae5476017c8f5316d25201625c3f7ea98 (patch)
tree030043ea7fe389f561e4e4826dc5fa18ed2dc54c
parent235281229dc3626581aeb409ac4db1c04fb39f72 (diff)
downloadprosody-d7abfeeae5476017c8f5316d25201625c3f7ea98.tar.gz
prosody-d7abfeeae5476017c8f5316d25201625c3f7ea98.zip
MUC: Fix to correctly return 'node' in disco#info responses (thanks jc)
-rw-r--r--plugins/muc/muc.lib.lua2
-rw-r--r--spec/scansion/muc_register.scs18
2 files changed, 17 insertions, 3 deletions
diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua
index c51f53e8..79fdd6e5 100644
--- a/plugins/muc/muc.lib.lua
+++ b/plugins/muc/muc.lib.lua
@@ -337,7 +337,7 @@ end
function room_mt:get_disco_info(stanza)
local node = stanza.tags[1].attr.node or "";
- local reply = st.reply(stanza):query("http://jabber.org/protocol/disco#info", { node = node });
+ local reply = st.reply(stanza):tag("query", { xmlns = "http://jabber.org/protocol/disco#info", node = node });
local event_name = "muc-disco#info";
local event_data = { room = self, reply = reply, stanza = stanza };
diff --git a/spec/scansion/muc_register.scs b/spec/scansion/muc_register.scs
index fbc36461..b76055b1 100644
--- a/spec/scansion/muc_register.scs
+++ b/spec/scansion/muc_register.scs
@@ -132,7 +132,7 @@ Juliet sends:
Juliet receives:
<iq type='result' from='room@conference.localhost' id='getnick1'>
- <query xmlns='http://jabber.org/protocol/disco#info'>
+ <query xmlns='http://jabber.org/protocol/disco#info' node='x-roomuser-item'>
<identity category='conference' name='Juliet' type='text'/>
</query>
</iq>
@@ -286,6 +286,20 @@ Juliet receives:
Romeo receives:
<presence from="room@conference.localhost/Juliet" />
+# Romeo checks whether he has reserved his own nick yet
+
+Romeo sends:
+ <iq id='getnick1' to='room@conference.localhost' type='get'>
+ <query xmlns='http://jabber.org/protocol/disco#info' node='x-roomuser-item'/>
+ </iq>
+
+# But no nick is returned, as he hasn't registered yet!
+
+Romeo receives:
+ <iq type='result' from='room@conference.localhost' id='getnick1'>
+ <query xmlns='http://jabber.org/protocol/disco#info' node='x-roomuser-item' scansion:strict='true' />
+ </iq>
+
# Romeo updates his own registration
Romeo sends:
@@ -346,7 +360,7 @@ Romeo sends:
Romeo receives:
<iq type='result' from='room@conference.localhost' id='getnick1'>
- <query xmlns='http://jabber.org/protocol/disco#info'>
+ <query xmlns='http://jabber.org/protocol/disco#info' node='x-roomuser-item'>
<identity category='conference' name='Romeo' type='text'/>
</query>
</iq>