Comparison

core/sessionmanager.lua @ 12878:0d8bf401fa73 0.12

core.sessionmanager: Mark session as destroyed to prevent reentry If it reaches this point, then the session will be most definitely be destroyed, so try to prevent destroy_session() from being called again.
author Kim Alvefur <zash@zash.se>
date Thu, 19 Jan 2023 21:40:09 +0100
parent 12877:f6cca7cbf3b2
child 12879:09a53ed8f4d5
comparison
equal deleted inserted replaced
12877:f6cca7cbf3b2 12878:0d8bf401fa73
104 104
105 -- Allow plugins to prevent session destruction 105 -- Allow plugins to prevent session destruction
106 if host_session.events.fire_event("pre-resource-unbind", {session=session, error=err}) then 106 if host_session.events.fire_event("pre-resource-unbind", {session=session, error=err}) then
107 return; 107 return;
108 end 108 end
109 session.destroyed = true; -- Past this point the session is DOOMED!
109 110
110 host_session.sessions[session.username].sessions[session.resource] = nil; 111 host_session.sessions[session.username].sessions[session.resource] = nil;
111 full_sessions[session.full_jid] = nil; 112 full_sessions[session.full_jid] = nil;
112 113
113 if not next(host_session.sessions[session.username].sessions) then 114 if not next(host_session.sessions[session.username].sessions) then