Software /
code /
prosody
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 |