mod_stanzadebug/mod_stanzadebug.lua
author Kim Alvefur <zash@zash.se>
Sun, 03 Mar 2024 11:23:40 +0100
changeset 5857 97c9b76867ca
parent 2492 590ac12b7671
permissions -rw-r--r--
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel) Otherwise the global event handlers accumulate, one added each time logging is reoladed, and each invocation of the signal or event triggers one dump of each created ringbuffer.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1450
ae1d7665cde9 mod_rawdebug: Make global (like mod_admin_telnet)
Kim Alvefur <zash@zash.se>
parents: 1444
diff changeset
     1
module:set_global();
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
local tostring = tostring;
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
local filters = require "util.filters";
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
     6
local function log_send(t, session)
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
     7
	if t and t ~= "" and t ~= " " then
2492
590ac12b7671 mod_stanzadebug: Like mod_rawdebug but stanzas instead of the raw bytes
Kim Alvefur <zash@zash.se>
parents: 2260
diff changeset
     8
		session.log("debug", "SEND: %s", tostring(t));
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
	end
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    10
	return t;
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
end
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    13
local function log_recv(t, session)
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    14
	if t and t ~= "" and t ~= " " then
2492
590ac12b7671 mod_stanzadebug: Like mod_rawdebug but stanzas instead of the raw bytes
Kim Alvefur <zash@zash.se>
parents: 2260
diff changeset
    15
		session.log("debug", "RECV: %s", tostring(t));
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
	end
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    17
	return t;
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
end
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    20
local function init_raw_logging(session)
2492
590ac12b7671 mod_stanzadebug: Like mod_rawdebug but stanzas instead of the raw bytes
Kim Alvefur <zash@zash.se>
parents: 2260
diff changeset
    21
	filters.add_filter(session, "stanzas/in",  log_recv, -10000);
590ac12b7671 mod_stanzadebug: Like mod_rawdebug but stanzas instead of the raw bytes
Kim Alvefur <zash@zash.se>
parents: 2260
diff changeset
    22
	filters.add_filter(session, "stanzas/out", log_send,  10000);
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
end
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
2260
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    25
filters.add_filter_hook(init_raw_logging);
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    26
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    27
function module.unload() -- luacheck: ignore
c5c583fae25d mod_rawdebug: Simplify, remove telnet command, log every single byte
Kim Alvefur <zash@zash.se>
parents: 1450
diff changeset
    28
	filters.remove_filter_hook(init_raw_logging);
1444
56c394b9e60d mod_rawdebug: Adds a telnet command for enabling logging of entire stanzas that are sent and received
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
end