Mercurial > prosody-hg
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 |
| parents | 73ee3855f970 |
| children | 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; |
