Mercurial > prosody-hg
annotate plugins/mod_stanza_debug.lua @ 10787:459efb1afbfe
mod_admin_telnet: Pretty-print values returned from commands
This makes it much nicer to inspect Prosody internals.
Existing textual status messages from commands are not serialized to
preserve existing behavior. Explicit serialization of configuration is
kept in order to make it clear that returned strings are serialized
strings that would look like what's actually in the config file.
The default maxdepth of 2 seems ought to be an okay default, balanced
between showing enough structure to continue exploring and DoS-ing your
terminal.
Thanks to Ge0rG for the motivation to finally do this.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 29 Apr 2020 22:23:05 +0200 |
| parents | 0f335815244f |
| children | 74b9e05af71e |
| 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 |
|
c3de5b454ec4
mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local filters = require "util.filters"; |
|
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 |
