Mercurial > prosody-modules
view mod_host_status_heartbeat/mod_host_status_heartbeat.lua @ 4983:7c77058a1ac5
mod_compat_roles: New module providing compat shim for trunk's new role API
The new role API is translated to is_admin() calls on older versions. On newer
versions (which have the role API) this module does nothing.
It allows modules to drop their use of is_admin() (which is not available in
trunk) and switch to the new role API, while remaining compatible with
previous Prosody versions.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 11 Aug 2022 17:49:33 +0100 |
parents | 7f955f92bbbb |
children |
line wrap: on
line source
local st = require "util.stanza"; local time = require "socket".gettime; local heartbeat_interval = module:get_option_number("status_check_heartbeat_interval", 5); local heartbeat_mode = module:get_option_string("status_check_heartbeat_mode", "remote"); local local_heartbeats = module:shared("/*/host_status_check/heartbeats"); local heartbeat_methods = { ["local"] = function() module:log("debug", "Local heartbeat"); local_heartbeats[module.host] = time(); return heartbeat_interval; end; ["remote"] = function () module:fire_event("route/remote", { origin = prosody.hosts[module.host]; stanza = st.stanza("heartbeat", { xmlns = "xmpp:prosody.im/heartbeat" }); }); return heartbeat_interval; end; } local send_heartbeat = assert(heartbeat_methods[heartbeat_mode], "Unknown heartbeat_mode: "..heartbeat_mode); module:add_timer(0, send_heartbeat);