Kim Alvefur <zash@zash.se> [Fri, 17 Dec 2021 16:21:26 +0100] rev 12069
mod_smacks: Bounce unacked stanzas on shutdown
Kim Alvefur <zash@zash.se> [Fri, 17 Dec 2021 16:00:08 +0100] rev 12068
mod_smacks: Preserve counter values on shutdown
Kim Alvefur <zash@zash.se> [Fri, 17 Dec 2021 15:59:06 +0100] rev 12067
mod_smacks: Simplify access to local user sessions
Less to type if per chance the next commit also wants to access
sessions.
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 23:04:50 +0100] rev 12066
mod_smacks: Cancel hibernation when session is closed
To ensure that if a session is replaced after it has gone into
hibernation, it does not come back and cause trouble for the new session
(see previous commit).
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 22:59:51 +0100] rev 12065
mod_smacks: Skip hibernation logic if session was closed or replaced
The resumption_token is removed when the session is closed via the
pre-session-close event, signaling that it cannot be resumed, and
therefore no hibernation timeout logic should be invoked.
Fixes that if a session somehow is replaced by a new one using the same
resource (which is the common behavior), the old session would still be
around until it times out at which point it sends `<presence
type="unavailable"/>` which would look as if it came from the new
session, ie appearing offline to everyone including MUCs.
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 22:42:08 +0100] rev 12064
mod_smacks: Fix indentation
Meld keeps messing up indentation when I merge and rebase...
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 16:02:01 +0100] rev 12063
mod_smacks: Stop stanzas from being queued on hibernation timeout
This overloads that flag a bit, but it has the intended effect of
stopping outgoing_stanza_filter() from queueing stanzas.
Fixes a traceback because of the queue having been removed somewhere
around here, since it is no longer needed.
Thanks Martin for reporting
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 12:16:45 +0100] rev 12062
util.smqueue: Simplify compat table, fix dependent modules (thanks Martin)
There was an off-by-one in the modulo calculation. Switching to a plain
old array-table makes the apparent size of the queue wrong, but since
some of the queue may not be available this is likely for the best.
Kim Alvefur <zash@zash.se> [Thu, 16 Dec 2021 12:16:08 +0100] rev 12061
util.smqueue: Add missing method to Teal record spec
Kim Alvefur <zash@zash.se> [Tue, 14 Dec 2021 20:00:45 +0100] rev 12060
mod_smacks: Limit queue memory consumption using new util
This brings back the queue size limit that was once added, then removed
because destroying the session when reaching the limit was not great.
Instead, the queue wraps and overwrites the oldest unacked stanza on the
assumption that it will probably be acked anyway and thus does not need
to be delivered. If those discarded stanzas turn out to be needed on
resumption then the resumption fails.