diff options
-rw-r--r-- | core/stanza_router.lua | 3 | ||||
-rw-r--r-- | plugins/mod_stanza_debug.lua | 29 |
2 files changed, 31 insertions, 1 deletions
diff --git a/core/stanza_router.lua b/core/stanza_router.lua index 2312614c..0be92f88 100644 --- a/core/stanza_router.lua +++ b/core/stanza_router.lua @@ -140,7 +140,8 @@ function core_process_stanza(origin, stanza) if h then local event; if xmlns == nil then - if stanza.name == "iq" and (stanza.attr.type == "set" or stanza.attr.type == "get") then + if stanza.name == "iq" and (stanza.attr.type == "set" or stanza.attr.type == "get") + and stanza.tags[1] and stanza.tags[1].attr.xmlns then event = "stanza/iq/"..stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name; else event = "stanza/"..stanza.name; 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 |