aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_stanza_debug.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2017-10-23 15:23:03 +0200
committerKim Alvefur <zash@zash.se>2017-10-23 15:23:03 +0200
commit26f7e8de2c42283231a0ffd455f91f42273ccf30 (patch)
tree69f5dba453329641546409679b2402f96e7aba32 /plugins/mod_stanza_debug.lua
parenta9461d5ec8c62f0790f125ece8758dce70bbdbca (diff)
downloadprosody-26f7e8de2c42283231a0ffd455f91f42273ccf30.tar.gz
prosody-26f7e8de2c42283231a0ffd455f91f42273ccf30.zip
mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
Diffstat (limited to 'plugins/mod_stanza_debug.lua')
-rw-r--r--plugins/mod_stanza_debug.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/mod_stanza_debug.lua b/plugins/mod_stanza_debug.lua
new file mode 100644
index 00000000..6dedb6f7
--- /dev/null
+++ b/plugins/mod_stanza_debug.lua
@@ -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()
+ filters.remove_filter_hook(init_raw_logging);
+end