Mercurial > prosody-modules
changeset 255:9b9b089407b1
mod_smacks: Fix to reply to stream for s2s sessions
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 07 Oct 2010 16:14:31 +0100 |
parents | 9b4a114b2fe6 |
children | 57de4a7840ef |
files | mod_smacks/mod_smacks.lua |
diffstat | 1 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_smacks/mod_smacks.lua Fri Oct 01 16:15:36 2010 +0200 +++ b/mod_smacks/mod_smacks.lua Thu Oct 07 16:14:31 2010 +0100 @@ -30,8 +30,8 @@ local queue = {}; session.outgoing_stanza_queue = queue; session.last_acknowledged_stanza = 0; - local _send = session.send; - function session.send(stanza) + local _send = session.sends2s or session.send; + 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); @@ -44,6 +44,12 @@ return ok, err; end + if session.sends2s then + session.sends2s = new_send; + else + session.send = new_send; + end + session.handled_stanza_count = 0; add_filter(session, "stanzas/in", function (stanza) if not stanza.attr.xmlns then @@ -66,7 +72,7 @@ end module:log("debug", "Received ack request, acking for %d", origin.handled_stanza_count); -- Reply with <a> - origin.send(st.stanza("a", { xmlns = xmlns_sm, h = tostring(origin.handled_stanza_count) })); + (origin.sends2s or origin.send)(st.stanza("a", { xmlns = xmlns_sm, h = tostring(origin.handled_stanza_count) })); return true; end);