diff -r c84ff82658cb -r 853a382c9bd6 mod_smacks/mod_smacks.lua --- a/mod_smacks/mod_smacks.lua Wed Feb 26 13:08:47 2014 -0800 +++ b/mod_smacks/mod_smacks.lua Fri Feb 28 15:36:06 2014 +0100 @@ -8,6 +8,7 @@ local add_filter = require "util.filters".add_filter; local timer = require "util.timer"; local datetime = require "util.datetime"; +local tb = require"util.debug".traceback; local xmlns_sm2 = "urn:xmpp:sm:2"; local xmlns_sm3 = "urn:xmpp:sm:3"; @@ -84,6 +85,7 @@ local function new_send(stanza) local attr = stanza.attr; if attr and not attr.xmlns then -- Stanza in default stream namespace + session.log("debug", "Sending stanza %s", stanza:top_tag()); local cached_stanza = st.clone(stanza); if cached_stanza and cached_stanza:get_child("delay", xmlns_delay) == nil then @@ -91,8 +93,10 @@ end queue[#queue+1] = cached_stanza; + session.log("debug", "#queue = %d", #queue); end if session.hibernating then + session.log("debug", "hibernating, stanza queued") -- The session is hibernating, no point in sending the stanza -- over a dead connection. It will be delivered upon resumption. return true; @@ -204,6 +208,7 @@ for i=1,math_min(handled_stanza_count,#queue) do t_remove(origin.outgoing_stanza_queue, 1); end + origin.log("debug", "#queue = %d", #queue); origin.last_acknowledged_stanza = origin.last_acknowledged_stanza + handled_stanza_count; return true; end @@ -333,9 +338,11 @@ -- Ok, we need to re-send any stanzas that the client didn't see -- ...they are what is now left in the outgoing stanza queue local queue = original_session.outgoing_stanza_queue; + session.log("debug", "#queue = %d", #queue); for i=1,#queue do session.send(queue[i]); end + session.log("debug", "#queue = %d -- after send", #queue); else module:log("warn", "Client %s@%s[%s] tried to resume stream for %s@%s[%s]", session.username or "?", session.host or "?", session.type,