# HG changeset patch # User Kim Alvefur # Date 1488810681 -3600 # Node ID 083c062c2fb732e91f15bb2adf828515215d116a # Parent f91e7ec9654e3077e09e72f7e198d9df84f191cc# Parent beaeafedc2d73fcfae64611df0fd082c3d92e9c5 Merge 0.10->trunk diff -r f91e7ec9654e -r 083c062c2fb7 .luacheckrc --- a/.luacheckrc Mon Mar 06 01:14:32 2017 +0100 +++ b/.luacheckrc Mon Mar 06 15:31:21 2017 +0100 @@ -5,7 +5,7 @@ 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 @@ 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 -r f91e7ec9654e -r 083c062c2fb7 plugins/adhoc/adhoc.lib.lua --- a/plugins/adhoc/adhoc.lib.lua Mon Mar 06 01:14:32 2017 +0100 +++ b/plugins/adhoc/adhoc.lib.lua Mon Mar 06 15:31:21 2017 +0100 @@ -27,11 +27,12 @@ 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 -r f91e7ec9654e -r 083c062c2fb7 plugins/mod_c2s.lua --- a/plugins/mod_c2s.lua Mon Mar 06 01:14:32 2017 +0100 +++ b/plugins/mod_c2s.lua Mon Mar 06 15:31:21 2017 +0100 @@ -168,27 +168,27 @@ session.send(""); 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 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 @@ 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 -r f91e7ec9654e -r 083c062c2fb7 plugins/mod_message.lua --- a/plugins/mod_message.lua Mon Mar 06 01:14:32 2017 +0100 +++ b/plugins/mod_message.lua Mon Mar 06 15:31:21 2017 +0100 @@ -20,7 +20,7 @@ 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