mod_smacks: Fix sending <r> after stanzas while not creating multiple timers (thanks Thilo)
authorKim Alvefur <zash@zash.se>
Sat, 02 Apr 2016 20:03:30 +0200
changeset 2152 c472a454be61
parent 2151 ed2bb50d4f91
child 2153 d9e91240a2dd
mod_smacks: Fix sending <r> after stanzas while not creating multiple timers (thanks Thilo)
mod_smacks/mod_smacks.lua
--- 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