# HG changeset patch # User Matthew Wild # Date 1776785014 -3600 # Node ID 320e1d49aa9ed3cab5ed9f376b6d943abdc9232e # Parent b6b09dace24b767854d736081b2819ecf1867b40# Parent 1d028f9473c2bd33899b54c8bb66c7e1e3c62337 Merge 13.0->trunk diff -r b6b09dace24b -r 320e1d49aa9e plugins/mod_c2s.lua --- a/plugins/mod_c2s.lua Fri Apr 17 19:43:00 2026 +0100 +++ b/plugins/mod_c2s.lua Tue Apr 21 16:23:34 2026 +0100 @@ -441,7 +441,9 @@ if session then (session.log or log)("info", "Client disconnected: %s", err or "connection closed"); stop_session_timers(session); - sm_destroy_session(session, err); + if not session.hibernating then + sm_destroy_session(session, err); + end session.conn = nil; sessions[conn] = nil; end diff -r b6b09dace24b -r 320e1d49aa9e plugins/mod_smacks.lua --- a/plugins/mod_smacks.lua Fri Apr 17 19:43:00 2026 +0100 +++ b/plugins/mod_smacks.lua Tue Apr 21 16:23:34 2026 +0100 @@ -75,7 +75,6 @@ local delayed_ack_timeout = module:get_option_period("smacks_max_ack_delay", 30); local max_old_sessions = module:get_option_integer("smacks_max_old_sessions", 10, 0); -local c2s_sessions = module:shared("/*/c2s/sessions"); local local_sessions = prosody.hosts[module.host].sessions; local function format_h(h) if h then return string.format("%d", h) end end @@ -554,10 +553,7 @@ }); end); if session.conn then - local conn = session.conn; - c2s_sessions[conn] = nil; - session.conn = nil; - conn:close(); + session.conn:close(); end session.log("debug", "Session going into hibernation (not being destroyed)") module:fire_event("smacks-hibernation-start", { origin = session; queue = session.outgoing_stanza_queue:table() });