MUC: Handle missing <value/> for <field type='boolean'/> in config form submissions.

Wed, 10 Nov 2010 00:24:17 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Wed, 10 Nov 2010 00:24:17 +0500
changeset 3580
39547152bb72
parent 3579
9720fa5e0991
child 3581
3f3f8227ba76

MUC: Handle missing <value/> for <field type='boolean'/> in config form submissions.

plugins/muc/muc.lib.lua file | annotate | diff | comparison | revisions
--- a/plugins/muc/muc.lib.lua	Tue Nov 09 20:23:28 2010 +0500
+++ b/plugins/muc/muc.lib.lua	Wed Nov 10 00:24:17 2010 +0500
@@ -601,8 +601,12 @@
 	if form.attr.type ~= "submit" then origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end
 	local fields = {};
 	for _, field in pairs(form.tags) do
-		if field.name == "field" and field.attr.var and field.tags[1].name == "value" and #field.tags[1].tags == 0 then
-			fields[field.attr.var] = field.tags[1][1] or "";
+		if field.name == "field" and field.attr.var then
+			if field.tags[1] and field.tags[1].name == "value" and #field.tags[1].tags == 0 then
+				fields[field.attr.var] = field.tags[1][1] or "";
+			elseif field.attr.type == "boolean" then
+				fields[field.attr.var] = "false";
+			end
 		end
 	end
 	if fields.FORM_TYPE ~= "http://jabber.org/protocol/muc#roomconfig" then origin.send(st.error_reply(stanza, "cancel", "bad-request")); return; end

mercurial