Software /
code /
prosody-modules
File
mod_invites_tracking/mod_invites_tracking.lua @ 5979:d6a695abb33c
mod_ping_muc: Delay ping a configurable amount of time
If a server is restarting, checking immediately before it has a chance
to complete its restart and get ready would often fail, preventing the
possibility of transparent restarts as supported by Prosody's mod_muc.
Reconnecting immediately when a connection is closed for being idle, or
because the remote server is trying to reclaim some resources, is also
counter-productive as the connection may fail.
Also, if there is some Internet routing problem affecting s2s, it may
help to wait a bit before checking, in case the problem resolved itself
in the mean time.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 11 Aug 2024 16:10:24 +0200 |
parent | 5925:9ed02a4f6ff4 |
line wrap: on
line source
local tracking_store = module:open_store("invites_tracking"); module:hook("user-registered", function(event) local validated_invite = event.validated_invite or (event.session and event.session.validated_invite); local new_username = event.username; if not validated_invite then module:log("debug", "No invitation found for registration of %s", new_username); return; end local invite_id = nil; local invite_source = nil; if validated_invite then invite_source = validated_invite.additional_data and validated_invite.additional_data.source; invite_id = validated_invite.token; end tracking_store:set(new_username, {invite_id = invite_id, invite_source = invite_source}); module:log("debug", "recorded that invite from %s was used to create %s", invite_source, new_username) end); -- " " is an invalid localpart -> we can safely use it for store metadata tracking_store:set(" ", {version="1"});