mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
authorKim Alvefur <zash@zash.se>
Mon, 23 Oct 2017 15:23:03 +0200
changeset 8351 c3de5b454ec4
parent 8350 c72db8047440
child 8352 2342eccf4a88
child 8356 aa6497031924
mod_stanza_debug: Logs full stanzas sent and received for debugging purposes
plugins/mod_stanza_debug.lua
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/mod_stanza_debug.lua	Mon Oct 23 15:23:03 2017 +0200
@@ -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