Changeset

9647:0f43b901c854

MUC: Move check for explicit room join earlier in room creation flow
author Kim Alvefur <zash@zash.se>
date Tue, 27 Nov 2018 17:01:47 +0100
parents 9646:eb543e4a47e2
children 9652:a58b48268ecd
files plugins/muc/mod_muc.lua plugins/muc/muc.lib.lua
diffstat 2 files changed, 1 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/muc/mod_muc.lua	Mon Nov 26 19:48:17 2018 +0100
+++ b/plugins/muc/mod_muc.lua	Tue Nov 27 17:01:47 2018 +0100
@@ -453,7 +453,7 @@
 
 		if room == nil then
 			-- Watch presence to create rooms
-			if stanza.attr.type == nil and stanza.name == "presence" then
+			if stanza.attr.type == nil and stanza.name == "presence" and stanza:get_child("x", "http://jabber.org/protocol/muc") then
 				room = muclib.new_room(room_jid);
 				return room:handle_first_presence(origin, stanza);
 			elseif stanza.attr.type ~= "error" then
--- a/plugins/muc/muc.lib.lua	Mon Nov 26 19:48:17 2018 +0100
+++ b/plugins/muc/muc.lib.lua	Tue Nov 27 17:01:47 2018 +0100
@@ -428,13 +428,6 @@
 end, 1);
 
 function room_mt:handle_first_presence(origin, stanza)
-	if not stanza:get_child("x", "http://jabber.org/protocol/muc") then
-		module:log("debug", "Room creation without <x>, possibly desynced");
-
-		origin.send(st.error_reply(stanza, "cancel", "item-not-found"));
-		return true;
-	end
-
 	local real_jid = stanza.attr.from;
 	local dest_jid = stanza.attr.to;
 	local bare_jid = jid_bare(real_jid);