Mercurial > prosody-modules
changeset 2488:590ac12b7671
mod_stanzadebug: Like mod_rawdebug but stanzas instead of the raw bytes
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 09 Feb 2017 10:47:24 +0100 (2017-02-09) |
parents | 99a025dc4f6b |
children | 9d154c929319 |
files | mod_stanzadebug/README.markdown mod_stanzadebug/mod_stanzadebug.lua |
diffstat | 2 files changed, 38 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_stanzadebug/README.markdown Thu Feb 09 10:47:24 2017 +0100 @@ -0,0 +1,9 @@ +--- +summary: Extra verbose stanza logging +--- + +Summary +======= + +This module logs the full stanzas that are sent and received into debug +logs, for debugging purposes.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_stanzadebug/mod_stanzadebug.lua Thu Feb 09 10:47:24 2017 +0100 @@ -0,0 +1,29 @@ +module:set_global(); + +local tostring = tostring; +local filters = require "util.filters"; + +local function log_send(t, session) + if t and t ~= "" and t ~= " " then + session.log("debug", "SEND: %s", tostring(t)); + end + return t; +end + +local function log_recv(t, session) + if t and t ~= "" and t ~= " " then + session.log("debug", "RECV: %s", tostring(t)); + end + return t; +end + +local function init_raw_logging(session) + filters.add_filter(session, "stanzas/in", log_recv, -10000); + filters.add_filter(session, "stanzas/out", log_send, 10000); +end + +filters.add_filter_hook(init_raw_logging); + +function module.unload() -- luacheck: ignore + filters.remove_filter_hook(init_raw_logging); +end