Software /
code /
prosody
Annotate
plugins/mod_stanza_debug.lua @ 12094:84fd6a79cda7
adminstream: fire disconnected event on lower layer disconnect
This may in theory cause multiple disconnect events for the
adminstream client, if the only code using that wasn't calling
os.exit right away.
Hence, this should be a good enough partial fix for #1671. It is
not a full fix, because the shell will only notice the disconnect
after one has hit enter in the input; until then, it is stuck in
a read() call to stdin and completely oblivious to the disconnect.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Tue, 21 Dec 2021 21:23:01 +0100 (2021-12-21) |
parent | 10111:0f335815244f |
child | 12977: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 |