annotate plugins/mod_stanza_debug.lua @ 14198:73903352de86

util.smqueue: Refactor checkpoint logic and add tests The previous checkpoint logic used recursion, and the code was more complex than needed due to maintenance of the self._next_checkpoint field. This switches to a loop, which should be a bit more efficient, partly because there are fewer calls (although it was a tail call) and because table lookups can now be cached between each execution. _call_checkpoints() is now called unconditionally for every ack, which is simpler though adds a function call, it should be more than balanced out by the other changes.
author Matthew Wild <mwild1@gmail.com>
date Tue, 26 May 2026 15:36:36 +0100
parents 74b9e05af71e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8348
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 module:set_global();
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
12977
74b9e05af71e plugins: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 10111
diff changeset
3 local filters = require "prosody.util.filters";
8348
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local function log_send(t, session)
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 if t and t ~= "" and t ~= " " then
10111
0f335815244f plugins: Remove tostring call from logging
Kim Alvefur <zash@zash.se>
parents: 8348
diff changeset
7 session.log("debug", "SEND: %s", t);
8348
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 end
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 return t;
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 end
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local function log_recv(t, session)
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 if t and t ~= "" and t ~= " " then
10111
0f335815244f plugins: Remove tostring call from logging
Kim Alvefur <zash@zash.se>
parents: 8348
diff changeset
14 session.log("debug", "RECV: %s", t);
8348
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 end
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 return t;
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 local function init_raw_logging(session)
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 filters.add_filter(session, "stanzas/in", log_recv, -10000);
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 filters.add_filter(session, "stanzas/out", log_send, 10000);
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 end
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 filters.add_filter_hook(init_raw_logging);
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 function module.unload()
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 filters.remove_filter_hook(init_raw_logging);
c3de5b454ec4 mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 end