view mod_host_status_heartbeat/mod_host_status_heartbeat.lua @ 5590:b681948a01f1

mod_http_muc_log: Fix redirect bug If you somehow went to /muc_log/room/yyyy-mm-dd/something it would send you in a redirect loop that continuously added path components until the path can't be parsed anymore. This should ensure that /muc_log/room/date/ is simply 404'd
author Kim Alvefur <zash@zash.se>
date Mon, 10 Jul 2023 16:10:57 +0200
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);