# HG changeset patch # User Florian Zeitz < florob@babelmonkeys.de> # Date 1276201969 -7200 # Node ID b3a68e71b8a12ac11c3ff0d1455175278469f62b # Parent cd8492748985f34fae186c527c5ee8b4278acd9c mod_adhoc, mod_adhoc_cmd_admin: Handle errors according to XEP diff -r cd8492748985 -r b3a68e71b8a1 mod_adhoc/adhoc/adhoc.lib.lua --- a/mod_adhoc/adhoc/adhoc.lib.lua Thu Jun 10 13:01:36 2010 +0100 +++ b/mod_adhoc/adhoc/adhoc.lib.lua Thu Jun 10 22:32:49 2010 +0200 @@ -1,3 +1,9 @@ +-- Copyright (C) 2009-2010 Florian Zeitz +-- +-- This file is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- + local st, uuid = require "util.stanza", require "util.uuid"; local xmlns_cmd = "http://jabber.org/protocol/commands"; @@ -38,7 +44,8 @@ elseif data.status == "error" then states[sessionid] = nil; stanza = st.error_reply(stanza, data.error.type, data.error.condition, data.error.message); - cmdtag = command:cmdtag("canceled", sessionid); + origin.send(stanza); + return true; else cmdtag = command:cmdtag("executing", sessionid); end diff -r cd8492748985 -r b3a68e71b8a1 mod_adhoc/adhoc/mod_adhoc.lua --- a/mod_adhoc/adhoc/mod_adhoc.lua Thu Jun 10 13:01:36 2010 +0100 +++ b/mod_adhoc/adhoc/mod_adhoc.lua Thu Jun 10 22:32:49 2010 +0200 @@ -1,5 +1,6 @@ -- Copyright (C) 2009 Thilo Cestonaro --- +-- Copyright (C) 2009-2010 Florian Zeitz +-- -- This file is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- diff -r cd8492748985 -r b3a68e71b8a1 mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua --- a/mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua Thu Jun 10 13:01:36 2010 +0100 +++ b/mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua Thu Jun 10 22:32:49 2010 +0200 @@ -1,4 +1,4 @@ --- Copyright (C) 2009 Florian Zeitz +-- Copyright (C) 2009-2010 Florian Zeitz -- -- This file is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -151,20 +151,19 @@ local username, host, resource = jid.split(fields.accountjid); if (fields["password"] == fields["password-verify"]) and username and host and host == data.to then if usermanager_user_exists(username, host) then - return { status = "error", error = { type = "cancel", condition = "conflict", message = "Account already exists" } }; + return { status = "completed", error = { message = "Account already exists" } }; else if usermanager_create_user(username, fields.password, host) then module:log("info", "Created new account " .. username.."@"..host); return { status = "completed", info = "Account successfully created" }; else - return { status = "error", error = { type = "wait", condition = "internal-server-error", - message = "Failed to write data to disk" } }; + return { status = "completed", error = { message = "Failed to write data to disk" } }; end end else - module:log("debug", fields.accountjid .. " " .. fields.password .. " " .. fields["password-verify"]); - return { status = "error", error = { type = "cancel", condition = "conflict", - message = "Invalid data.\nPassword mismatch, or empty username" } }; + module:log("debug", (fields.accountjid or "") .. " " .. (fields.password or "") .. " " + .. (fields["password-verify"] or "")); + return { status = "completed", error = { message = "Invalid data.\nPassword mismatch, or empty username" } }; end else return { status = "executing", form = add_user_layout }, "executing"; @@ -181,7 +180,7 @@ if usermanager_user_exists(username, host) and usermanager_set_password(username, host, fields.password) then return { status = "completed", info = "Password successfully changed" }; else - return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; + return { status = "completed", error = { message = "User does not exist" } }; end else return { status = "executing", form = change_user_password_layout }, "executing"; @@ -258,7 +257,7 @@ accountjid = fields.accountjid; password = usermanager_get_password(user, host); else - return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; + return { status = "completed", error = { message = "User does not exist" } }; end return { status = "completed", result = { layout = get_user_password_result_layout, data = {accountjid = accountjid, password = password} } }; else @@ -276,7 +275,7 @@ local user, host, resource = jid.split(fields.accountjid); if not usermanager_user_exists(user, host) then - return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; + return { status = "completed", error = { message = "User does not exist" } }; end local roster = rm_load_roster(user, host); @@ -317,7 +316,7 @@ local user, host, resource = jid.split(fields.accountjid); if not usermanager_user_exists(user, host) then - return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; + return { status = "completed", error = { message = "User does not exist" } }; end local roster = rm_load_roster(user, host); local rostersize = 0;