mod_smacks: Fix sending <r> after stanzas while not creating multiple timers (thanks Thilo)
--- a/mod_smacks/mod_smacks.lua Fri Apr 01 15:18:56 2016 +0200
+++ b/mod_smacks/mod_smacks.lua Sat Apr 02 20:03:30 2016 +0200
@@ -87,13 +87,14 @@
session.log("debug", "hibernating, stanza queued");
return nil;
end
- if #queue > max_unacked_stanzas and not session.awaiting_ack then
+ if #queue > max_unacked_stanzas and session.awaiting_ack == nil then
session.log("debug", "Queuing <r> (in a moment)");
- session.awaiting_ack = true;
+ session.awaiting_ack = false;
session.awaiting_ack_timer = module:add_timer(1e-06, function ()
if not session.awaiting_ack then
session.log("debug", "Sending <r> (after send)");
(session.sends2s or session.send)(st.stanza("r", { xmlns = session.smacks }))
+ session.awaiting_ack = true;
end
end);
end