Software /
code /
prosody
Comparison
plugins/mod_smacks.lua @ 12112:08a949e63541
mod_smacks: Use more compact resumption tokens
UUID seems like insane overkill for something user-scoped and not
security-sensitive. All that is needed is to avoid conflicts among what
should be relatively long-lived sessions.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 22 Dec 2021 18:47:45 +0100 |
parent | 12081:6cc3135138d7 |
child | 12114:e32f90c81519 |
comparison
equal
deleted
inserted
replaced
12111:f8d280215633 | 12112:08a949e63541 |
---|---|
19 local add_filter = require "util.filters".add_filter; | 19 local add_filter = require "util.filters".add_filter; |
20 local jid = require "util.jid"; | 20 local jid = require "util.jid"; |
21 local smqueue = require "util.smqueue"; | 21 local smqueue = require "util.smqueue"; |
22 local st = require "util.stanza"; | 22 local st = require "util.stanza"; |
23 local timer = require "util.timer"; | 23 local timer = require "util.timer"; |
24 local uuid_generate = require "util.uuid".generate; | 24 local new_id = require "util.id".short; |
25 local watchdog = require "util.watchdog"; | 25 local watchdog = require "util.watchdog"; |
26 | 26 |
27 local sessionmanager = require "core.sessionmanager"; | 27 local sessionmanager = require "core.sessionmanager"; |
28 local core_process_stanza = prosody.core_process_stanza; | 28 local core_process_stanza = prosody.core_process_stanza; |
29 | 29 |
257 | 257 |
258 local resume_max; | 258 local resume_max; |
259 local resume_token; | 259 local resume_token; |
260 local resume = stanza.attr.resume; | 260 local resume = stanza.attr.resume; |
261 if resume == "true" or resume == "1" then | 261 if resume == "true" or resume == "1" then |
262 resume_token = uuid_generate(); | 262 resume_token = new_id(); |
263 session_registry[jid.join(session.username, session.host, resume_token)] = session; | 263 session_registry[jid.join(session.username, session.host, resume_token)] = session; |
264 session.resumption_token = resume_token; | 264 session.resumption_token = resume_token; |
265 resume_max = tostring(resume_timeout); | 265 resume_max = tostring(resume_timeout); |
266 end | 266 end |
267 (session.sends2s or session.send)(st.stanza("enabled", { xmlns = xmlns_sm, id = resume_token, resume = resume, max = resume_max })); | 267 (session.sends2s or session.send)(st.stanza("enabled", { xmlns = xmlns_sm, id = resume_token, resume = resume, max = resume_max })); |