mod_smacks: Factor out resumption token table key generation
authorKim Alvefur <zash@zash.se>
Sun, 13 Nov 2022 19:44:53 +0100
changeset 12807 2e12290820e8
parent 12806 4a8740e01813
child 12808 3eef052c72d8
mod_smacks: Factor out resumption token table key generation So that happens in a single place, where it can be changed easier.
plugins/mod_smacks.lua
--- a/plugins/mod_smacks.lua	Mon Dec 12 07:10:54 2022 +0100
+++ b/plugins/mod_smacks.lua	Sun Nov 13 19:44:53 2022 +0100
@@ -84,19 +84,23 @@
 local old_session_registry = module:open_store("smacks_h", "map");
 local session_registry = module:shared "/*/smacks/resumption-tokens"; -- > user@host/resumption-token --> resource
 
+local function registry_key(session, id)
+	return jid.join(session.username, session.host, id or session.resumption_token);
+end
+
 local function track_session(session, id)
-	session_registry[jid.join(session.username, session.host, id or session.resumption_token)] = session;
+	session_registry[registry_key(session, id)] = session;
 	session.resumption_token = id;
 end
 
 local function save_old_session(session)
-	session_registry[jid.join(session.username, session.host, session.resumption_token)] = nil;
+	session_registry[registry_key(session)] = nil;
 	return old_session_registry:set(session.username, session.resumption_token,
 		{ h = session.handled_stanza_count; t = os.time() })
 end
 
 local function clear_old_session(session, id)
-	session_registry[jid.join(session.username, session.host, id or session.resumption_token)] = nil;
+	session_registry[registry_key(session, id)] = nil;
 	return old_session_registry:set(session.username, id or session.resumption_token, nil)
 end
 
@@ -570,7 +574,7 @@
 	end
 
 	local id = stanza.attr.previd;
-	local original_session = session_registry[jid.join(session.username, session.host, id)];
+	local original_session = session_registry[registry_key(session, id)];
 	if not original_session then
 		local old_session = old_session_registry:get(session.username, id);
 		if old_session then