Software /
code /
prosody
Comparison
plugins/mod_smacks.lua @ 12519:d935af51c644
mod_smacks: Use session logging for remaining log messages
For consistency and easier correlation of session events.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 21 May 2022 13:11:25 +0200 |
parent | 12518:73ee3855f970 |
child | 12523:d2177cb5a766 |
comparison
equal
deleted
inserted
replaced
12518:73ee3855f970 | 12519:d935af51c644 |
---|---|
300 return true; | 300 return true; |
301 end | 301 end |
302 | 302 |
303 if session.username then | 303 if session.username then |
304 local old_sessions, err = all_old_sessions:get(session.username); | 304 local old_sessions, err = all_old_sessions:get(session.username); |
305 module:log("debug", "Old sessions: %q", old_sessions) | 305 session.log("debug", "Old sessions: %q", old_sessions) |
306 if old_sessions then | 306 if old_sessions then |
307 local keep, count = {}, 0; | 307 local keep, count = {}, 0; |
308 for token, info in it.sorted_pairs(old_sessions, function(a, b) | 308 for token, info in it.sorted_pairs(old_sessions, function(a, b) |
309 return (old_sessions[a].t or 0) > (old_sessions[b].t or 0); | 309 return (old_sessions[a].t or 0) > (old_sessions[b].t or 0); |
310 end) do | 310 end) do |
312 if count > max_old_sessions then break end | 312 if count > max_old_sessions then break end |
313 keep[token] = info; | 313 keep[token] = info; |
314 end | 314 end |
315 all_old_sessions:set(session.username, keep); | 315 all_old_sessions:set(session.username, keep); |
316 elseif err then | 316 elseif err then |
317 module:log("error", "Unable to retrieve old resumption counters: %s", err); | 317 session.log("error", "Unable to retrieve old resumption counters: %s", err); |
318 end | 318 end |
319 end | 319 end |
320 | 320 |
321 module:log("debug", "Enabling stream management"); | 321 session.log("debug", "Enabling stream management"); |
322 session.smacks = xmlns_sm; | 322 session.smacks = xmlns_sm; |
323 | 323 |
324 wrap_session(session, false); | 324 wrap_session(session, false); |
325 | 325 |
326 local resume_max; | 326 local resume_max; |
351 wrap_session_out(session, false); | 351 wrap_session_out(session, false); |
352 session.sends2s(st.stanza("enable", { xmlns = session.smacks })); | 352 session.sends2s(st.stanza("enable", { xmlns = session.smacks })); |
353 end); | 353 end); |
354 | 354 |
355 function handle_enabled(session, stanza, xmlns_sm) -- luacheck: ignore 212/stanza | 355 function handle_enabled(session, stanza, xmlns_sm) -- luacheck: ignore 212/stanza |
356 module:log("debug", "Enabling stream management"); | 356 session.log("debug", "Enabling stream management"); |
357 session.smacks = xmlns_sm; | 357 session.smacks = xmlns_sm; |
358 | 358 |
359 wrap_session_in(session, false); | 359 wrap_session_in(session, false); |
360 | 360 |
361 -- FIXME Resume? | 361 -- FIXME Resume? |
365 module:hook_tag(xmlns_sm2, "enabled", function (session, stanza) return handle_enabled(session, stanza, xmlns_sm2); end, 100); | 365 module:hook_tag(xmlns_sm2, "enabled", function (session, stanza) return handle_enabled(session, stanza, xmlns_sm2); end, 100); |
366 module:hook_tag(xmlns_sm3, "enabled", function (session, stanza) return handle_enabled(session, stanza, xmlns_sm3); end, 100); | 366 module:hook_tag(xmlns_sm3, "enabled", function (session, stanza) return handle_enabled(session, stanza, xmlns_sm3); end, 100); |
367 | 367 |
368 function handle_r(origin, stanza, xmlns_sm) -- luacheck: ignore 212/stanza | 368 function handle_r(origin, stanza, xmlns_sm) -- luacheck: ignore 212/stanza |
369 if not origin.smacks then | 369 if not origin.smacks then |
370 module:log("debug", "Received ack request from non-smack-enabled session"); | 370 origin.log("debug", "Received ack request from non-smack-enabled session"); |
371 return; | 371 return; |
372 end | 372 end |
373 module:log("debug", "Received ack request, acking for %d", origin.handled_stanza_count); | 373 origin.log("debug", "Received ack request, acking for %d", origin.handled_stanza_count); |
374 -- Reply with <a> | 374 -- Reply with <a> |
375 (origin.sends2s or origin.send)(st.stanza("a", { xmlns = xmlns_sm, h = format_h(origin.handled_stanza_count) })); | 375 (origin.sends2s or origin.send)(st.stanza("a", { xmlns = xmlns_sm, h = format_h(origin.handled_stanza_count) })); |
376 -- piggyback our own ack request if needed (see request_ack_if_needed() for explanation of last_requested_h) | 376 -- piggyback our own ack request if needed (see request_ack_if_needed() for explanation of last_requested_h) |
377 request_ack_now_if_needed(origin, false, "piggybacked by handle_r", nil); | 377 request_ack_now_if_needed(origin, false, "piggybacked by handle_r", nil); |
378 return true; | 378 return true; |