Software /
code /
prosody-modules
Diff
mod_smacks/mod_smacks.lua @ 256:57de4a7840ef
mod_smacks: Fixes for storing the unacked stanzas so that they can be properly replayed to clients on stream resume
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 07 Oct 2010 16:16:49 +0100 |
parent | 255:9b9b089407b1 |
child | 257:08fa42e1ab06 |
line wrap: on
line diff
--- a/mod_smacks/mod_smacks.lua Thu Oct 07 16:14:31 2010 +0100 +++ b/mod_smacks/mod_smacks.lua Thu Oct 07 16:16:49 2010 +0100 @@ -34,7 +34,7 @@ local function new_send(stanza) local attr = stanza.attr; if attr and not attr.xmlns then -- Stanza in default stream namespace - queue[#queue+1] = st.reply(stanza); + queue[#queue+1] = st.clone(stanza); end local ok, err = _send(stanza); if ok and #queue > max_unacked_stanzas and not session.awaiting_ack then @@ -107,12 +107,12 @@ if #queue > 0 then session.outgoing_stanza_queue = {}; for i=1,#queue do - local reply = queue[i]; + local reply = st.reply(queue[i]); if reply.attr.to ~= session.full_jid then reply.attr.type = "error"; reply:tag("error", error_attr) :tag("recipient-unavailable", {xmlns = "urn:ietf:params:xml:ns:xmpp-stanzas"}); - core_process_stanza(session, queue[i]); + core_process_stanza(session, reply); end end end