MUC: Move check for explicit room join earlier in room creation flow
authorKim Alvefur <zash@zash.se>
Tue, 27 Nov 2018 17:01:47 +0100
changeset 9651 0f43b901c854
parent 9650 eb543e4a47e2
child 9656 a58b48268ecd
MUC: Move check for explicit room join earlier in room creation flow
plugins/muc/mod_muc.lua
plugins/muc/muc.lib.lua
--- 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);