mod_compat_roles: Fix attempt to index a nil value #1847
permissions[] is not a map with role names as keys since 817bc9873fc2
but instead a level with host names were added. This was likely an
oversight.
Refactored towards railroad.
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);