From 45978d6be230d723065644a5a81b626d333d5100 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Thu, 29 Dec 2022 16:25:00 +0000 Subject: sessionmanager: Fire event before retiring old session This allows for modules to update fields, which is generally better than maintaining this hard-coded list of transferable properties here. --- core/sessionmanager.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'core') diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua index 138d4e74..14c85425 100644 --- a/core/sessionmanager.lua +++ b/core/sessionmanager.lua @@ -126,14 +126,15 @@ local function update_session(to_session, from_session) -- Inform xmppstream of the new session (passed to its callbacks) to_session.stream:set_session(to_session); - -- Retire the session we've pulled from, to avoid two sessions on the same connection - retire_session(from_session); - + -- Notify modules, allowing them to copy further fields or update state prosody.events.fire_event("c2s-session-updated", { session = to_session; from_session = from_session; replaced_conn = replaced_conn; }); + + -- Retire the session we've pulled from, to avoid two sessions on the same connection + retire_session(from_session); end local function destroy_session(session, err) -- cgit v1.2.3