diff options
-rw-r--r-- | .luacheckrc | 76 | ||||
-rw-r--r-- | plugins/adhoc/adhoc.lib.lua | 11 | ||||
-rw-r--r-- | plugins/mod_c2s.lua | 16 | ||||
-rw-r--r-- | plugins/mod_message.lua | 2 |
4 files changed, 89 insertions, 16 deletions
diff --git a/.luacheckrc b/.luacheckrc index 0040cfbb..d931da66 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -5,7 +5,7 @@ allow_defined_top = true module = true unused_secondaries = false codes = true -ignore = { "411/err", "421/err", "411/ok", "421/ok", "211/_ENV" } +ignore = { "411/err", "421/err", "411/ok", "421/ok", "211/_ENV", "431/log" } max_line_length = 150 @@ -14,7 +14,79 @@ files["core/"] = { globals = { "prosody.hosts.?", "hosts.?" }; } files["plugins/"] = { - globals = { "module" }; + read_globals = { + -- Module instance + "module.name", + "module.host", + "module._log", + "module.log", + "module.event_handlers", + "module.reloading", + "module.saved_state", + "module.environment", + "module.global", + "module.path", + + -- Module API + "module.add_extension", + "module.add_feature", + "module.add_identity", + "module.add_item", + "module.add_timer", + "module.broadcast", + "module.context", + "module.depends", + "module.fire_event", + "module.get_directory", + "module.get_host", + "module.get_host_items", + "module.get_host_type", + "module.get_name", + "module.get_option", + "module.get_option_array", + "module.get_option_boolean", + "module.get_option_inherited_set", + "module.get_option_number", + "module.get_option_path", + "module.get_option_set", + "module.get_option_string", + "module.handle_items", + "module.has_feature", + "module.has_identity", + "module.hook", + "module.hook_global", + "module.hook_object_event", + "module.hook_tag", + "module.load_resource", + "module.measure", + "module.measure_event", + "module.measure_global_event", + "module.measure_object_event", + "module.open_store", + "module.provides", + "module.remove_item", + "module.require", + "module.send", + "module.set_global", + "module.shared", + "module.unhook", + "module.unhook_object_event", + "module.wrap_event", + "module.wrap_global", + "module.wrap_object_event", + }; + globals = { + "_M", + + -- Methods that can be set on module API + "module.unload", + "module.add_host", + "module.load", + "module.add_host", + "module.save", + "module.restore", + "module.command", + }; } files["tests/"] = { read_globals = { diff --git a/plugins/adhoc/adhoc.lib.lua b/plugins/adhoc/adhoc.lib.lua index 5c90c91b..87415636 100644 --- a/plugins/adhoc/adhoc.lib.lua +++ b/plugins/adhoc/adhoc.lib.lua @@ -27,11 +27,12 @@ end function _M.handle_cmd(command, origin, stanza) local cmdtag = stanza.tags[1] local sessionid = cmdtag.attr.sessionid or uuid.generate(); - local dataIn = {}; - dataIn.to = stanza.attr.to; - dataIn.from = stanza.attr.from; - dataIn.action = cmdtag.attr.action or "execute"; - dataIn.form = cmdtag:get_child("x", "jabber:x:data"); + local dataIn = { + to = stanza.attr.to; + from = stanza.attr.from; + action = cmdtag.attr.action or "execute"; + form = cmdtag:get_child("x", "jabber:x:data"); + }; local data, state = command:handler(dataIn, states[sessionid]); states[sessionid] = state; diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua index d106ed37..c1b5ee98 100644 --- a/plugins/mod_c2s.lua +++ b/plugins/mod_c2s.lua @@ -168,27 +168,27 @@ local function session_close(session, reason) session.send("</stream:stream>"); function session.send() return false; end - local reason = (reason and (reason.name or reason.text or reason.condition)) or reason; - session.log("debug", "c2s stream for %s closed: %s", session.full_jid or ("<"..session.ip..">"), reason or "session closed"); + local reason_text = (reason and (reason.name or reason.text or reason.condition)) or reason; + session.log("debug", "c2s stream for %s closed: %s", session.full_jid or ("<"..session.ip..">"), reason_text or "session closed"); -- Authenticated incoming stream may still be sending us stanzas, so wait for </stream:stream> from remote local conn = session.conn; - if reason == nil and not session.notopen and session.type == "c2s" then + if reason_text == nil and not session.notopen and session.type == "c2s" then -- Grace time to process data from authenticated cleanly-closed stream add_task(stream_close_timeout, function () if not session.destroyed then session.log("warn", "Failed to receive a stream close response, closing connection anyway..."); - sm_destroy_session(session, reason); + sm_destroy_session(session, reason_text); conn:close(); end end); else - sm_destroy_session(session, reason); + sm_destroy_session(session, reason_text); conn:close(); end else - local reason = (reason and (reason.name or reason.text or reason.condition)) or reason; - sm_destroy_session(session, reason); + local reason_text = (reason and (reason.name or reason.text or reason.condition)) or reason; + sm_destroy_session(session, reason_text); end end @@ -196,7 +196,7 @@ module:hook_global("user-deleted", function(event) local username, host = event.username, event.host; local user = hosts[host].sessions[username]; if user and user.sessions then - for jid, session in pairs(user.sessions) do + for _, session in pairs(user.sessions) do session:close{ condition = "not-authorized", text = "Account deleted" }; end end diff --git a/plugins/mod_message.lua b/plugins/mod_message.lua index 47da5f46..2ee75c21 100644 --- a/plugins/mod_message.lua +++ b/plugins/mod_message.lua @@ -20,7 +20,7 @@ local function process_to_bare(bare, origin, stanza) local t = stanza.attr.type; if t == "error" then - -- discard + return true; -- discard elseif t == "groupchat" then origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); elseif t == "headline" then |