Changeset

12047:81858fd6f198

mod_smacks: Flag both sessions to prevent duplicating queue on resumption I have no idea what is going on in this code, which session is which? Something has one of the sessions as an upvalue which is where the filter checks for it.
author Kim Alvefur <zash@zash.se>
date Tue, 14 Dec 2021 12:59:38 +0100
parents 12046:372ec5cd0f51
children 12048:f087bfd021ad
files plugins/mod_smacks.lua
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_smacks.lua	Mon Dec 06 11:49:22 2021 +0100
+++ b/plugins/mod_smacks.lua	Tue Dec 14 12:59:38 2021 +0100
@@ -606,11 +606,14 @@
 		-- to the outgoing queue again
 		local queue = original_session.outgoing_stanza_queue;
 		session.log("debug", "resending all unacked stanzas that are still queued after resume, #queue = %d", #queue);
+		-- FIXME Which session is it that the queue filter sees?
 		session.resending_unacked = true;
+		original_session.resending_unacked = true;
 		for i=1,#queue do
 			session.send(queue[i]);
 		end
 		session.resending_unacked = nil;
+		original_session.resending_unacked = nil;
 		session.log("debug", "all stanzas resent, now disabling send() in this migrated session, #queue = %d", #queue);
 		function session.send(stanza) -- luacheck: ignore 432
 			migrated_session_log("error", "Tried to send stanza on old session migrated by smacks resume (maybe there is a bug?): %s", tostring(stanza));