view mod_host_status_check/mod_host_status_check.lua @ 6220:b6e390a97c85

mod_dnsupdate: Improve handling of existing DNS records Previously it would print the final service denial record when the current DNS setup matched the config and no changes were necessary.
author Kim Alvefur <zash@zash.se>
date Mon, 12 May 2025 12:15:10 +0200
parents 3d80f8dba886
children ff1499e348f8
line wrap: on
line source

local time = require "socket".gettime;

local heartbeats = module:shared("/*/host_status_check/heartbeats");
local connection_events = module:shared("/*/host_status_check/connection_events");

if prosody.hosts[module.host].type == "component" and module:get_option_string("component_module") == "component" then
	module:hook("component-authenticated", function ()
		connection_events[module.host] = { connected = true; timestamp = time() };
	end);

	-- Note: this event is not in 0.9, and requires a recent 0.10 or trunk build
	module:hook("component-disconnected", function ()
		connection_events[module.host] = { connected = false; timestamp = time() };
	end);

	module:hook("stanza/xmpp:prosody.im/heartbeat:heartbeat", function ()
		heartbeats[module.host] = time();
		return true;
	end);
else
	connection_events[module.host] = { connected = true, timestamp = time() };
end

function module.unload()
	connection_events[module.host] = { connected = false, timestamp = time() };
	heartbeats[module.host] = nil;
end