# HG changeset patch # User Kim Alvefur # Date 1653580139 -7200 # Node ID d2177cb5a76681d915bce1cd366257337540aaa7 # Parent f07b3f6ad90390694b91121f0bad4ca4f0089515# Parent 1671cb924002625a26b9d8d82dee80646ab51403 Merge 0.12->trunk diff -r f07b3f6ad903 -r d2177cb5a766 plugins/mod_smacks.lua --- a/plugins/mod_smacks.lua Thu May 26 13:46:10 2022 +0200 +++ b/plugins/mod_smacks.lua Thu May 26 17:48:59 2022 +0200 @@ -160,7 +160,7 @@ if session.awaiting_ack then return end -- already waiting if force then return force end local queue = session.outgoing_stanza_queue; - local expected_h = session.last_acknowledged_stanza + queue:count_unacked(); + local expected_h = queue:count_acked() + queue:count_unacked(); local max_unacked = max_unacked_stanzas; if session.state == "inactive" then max_unacked = max_inactive_unacked_stanzas; @@ -178,7 +178,7 @@ if session.destroyed then return end -- sending something can trigger destruction session.awaiting_ack = true; -- expected_h could be lower than this expression e.g. more stanzas added to the queue meanwhile) - session.last_requested_h = session.last_acknowledged_stanza + queue:count_unacked(); + session.last_requested_h = queue:count_acked() + queue:count_unacked(); session.log("debug", "Sending (inside timer, after send) from %s - #queue=%d", reason, queue:count_unacked()); if not session.delayed_ack_timer then session.delayed_ack_timer = timer.add_task(delayed_ack_timeout, function() @@ -240,7 +240,6 @@ local function wrap_session_out(session, resume) if not resume then session.outgoing_stanza_queue = smqueue.new(queue_size); - session.last_acknowledged_stanza = 0; end add_filter(session, "stanzas/out", outgoing_stanza_filter, -999);