plugins/muc/muc.lib: Add instant room support
authordaurnimator <quae@daurnimator.com>
Fri, 5 Sep 2014 15:19:16 +0000 (11:19 -0400)
committerdaurnimator <quae@daurnimator.com>
Fri, 5 Sep 2014 15:19:16 +0000 (11:19 -0400)
plugins/muc/muc.lib.lua

index 041187e5dda6dd49d25a69c6dc0fb9752e6bfd26..d430f9845ecc961d263ac1de28e0845791627519 100644 (file)
@@ -614,10 +614,15 @@ function room_mt:process_form(origin, stanza)
        if form.attr.type == "cancel" then
                origin.send(st.reply(stanza));
        elseif form.attr.type == "submit" then
-               local fields = self:get_form_layout(stanza.attr.from):data(form);
-               if fields.FORM_TYPE ~= "http://jabber.org/protocol/muc#roomconfig" then
-                       origin.send(st.error_reply(stanza, "cancel", "bad-request", "Form is not of type room configuration"));
-                       return true;
+               local fields;
+               if form.tags[1] == nil then -- Instant room
+                       fields = {};
+               else
+                       fields = self:get_form_layout(stanza.attr.from):data(form);
+                       if fields.FORM_TYPE ~= "http://jabber.org/protocol/muc#roomconfig" then
+                               origin.send(st.error_reply(stanza, "cancel", "bad-request", "Form is not of type room configuration"));
+                               return true;
+                       end
                end
 
                local event = {room = self; origin = origin; stanza = stanza; fields = fields; status_codes = {};};