Mercurial > prosody-modules
view mod_audit_status/mod_audit_status.lua @ 6265:30adcea825c3
mod_conversejs: Fix hostname set as default username (thanks roughnecks)
In login mode, it seems jid is used as default value in the login field
but it was only needed in anonymous mode.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 18 Jun 2025 14:28:38 +0200 |
| parents | bd0abf821cef |
| children |
line wrap: on
line source
module:depends("audit"); local st = require "util.stanza"; -- Suppress warnings about module:audit() -- luacheck: ignore 143/module local heartbeat_interval = module:get_option_number("audit_status_heartbeat_interval", 60); local store = module:open_store(nil, "keyval+"); -- This is global, to make it available to other modules crashed = false; --luacheck: ignore 131/crashed module:hook_global("server-started", function () local recorded_status = store:get(); if recorded_status and recorded_status.status == "started" then module:audit(nil, "server-crashed", { timestamp = recorded_status.heartbeat }); crashed = true; end module:audit(nil, "server-started"); store:set_key(nil, "status", "started"); end); module:hook_global("server-stopped", function () module:audit(nil, "server-stopped", { custom = { prosody.shutdown_reason and st.stanza("note"):text(prosody.shutdown_reason); }; }); store:set_key(nil, "status", "stopped"); end); if heartbeat_interval then local async = require "util.async"; local heartbeat_writer = async.runner(function (timestamp) store:set_key(nil, "heartbeat", timestamp); end); module:add_timer(0, function () heartbeat_writer:run(os.time()); return heartbeat_interval; end); end
