Annotate

plugins/mod_stanza_debug.lua @ 11972:520ce76440ad

net.server_epoll: Prevent loop attempting to send last data after close If the connection is closed by the peer, any buffered data is given a last chance to be sent (see f27b9319e0da). If the connection is Really closed, no attempt to write will occur, instead epoll will raise the error flag and :onreadable() will be invoked again, where it will try to :close() again for the same reason, thus looping until the connection somehow gets destroyed. By clearing the _connected flag, the second time it passes :onreadable() it should go directly to :destroy(), breaking the loop. Thanks Link Mauve for reporting
author Kim Alvefur <zash@zash.se>
date Tue, 30 Nov 2021 18:19:40 +0100
parent 10111:0f335815244f
child 12977:74b9e05af71e
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
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