Mercurial > prosody-hg
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 |
| parents | f6cca7cbf3b2 |
| children | 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 |
