Software / code / prosody
Comparison
core/sessionmanager.lua @ 2591:d540a75a11db
sessionmanager: Fire resource-unbind event after removing session from sessions table
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 11 Feb 2010 19:34:23 +0000 |
| parent | 2580:61f0acd9086f |
| child | 2606:c3fe88d4b921 |
comparison
equal
deleted
inserted
replaced
| 2590:2d7e2a28d1d5 | 2591:d540a75a11db |
|---|---|
| 69 function destroy_session(session, err) | 69 function destroy_session(session, err) |
| 70 (session.log or log)("info", "Destroying session for %s (%s@%s)", session.full_jid or "(unknown)", session.username or "(unknown)", session.host or "(unknown)"); | 70 (session.log or log)("info", "Destroying session for %s (%s@%s)", session.full_jid or "(unknown)", session.username or "(unknown)", session.host or "(unknown)"); |
| 71 | 71 |
| 72 -- Remove session/resource from user's session list | 72 -- Remove session/resource from user's session list |
| 73 if session.full_jid then | 73 if session.full_jid then |
| 74 hosts[session.host].events.fire_event("resource-unbind", {session=session, error=err}); | |
| 75 | |
| 76 hosts[session.host].sessions[session.username].sessions[session.resource] = nil; | 74 hosts[session.host].sessions[session.username].sessions[session.resource] = nil; |
| 77 full_sessions[session.full_jid] = nil; | 75 full_sessions[session.full_jid] = nil; |
| 78 | 76 |
| 79 if not next(hosts[session.host].sessions[session.username].sessions) then | 77 if not next(hosts[session.host].sessions[session.username].sessions) then |
| 80 log("debug", "All resources of %s are now offline", session.username); | 78 log("debug", "All resources of %s are now offline", session.username); |
| 81 hosts[session.host].sessions[session.username] = nil; | 79 hosts[session.host].sessions[session.username] = nil; |
| 82 bare_sessions[session.username..'@'..session.host] = nil; | 80 bare_sessions[session.username..'@'..session.host] = nil; |
| 83 end | 81 end |
| 82 | |
| 83 hosts[session.host].events.fire_event("resource-unbind", {session=session, error=err}); | |
| 84 end | 84 end |
| 85 | 85 |
| 86 for k in pairs(session) do | 86 for k in pairs(session) do |
| 87 if k ~= "trace" then | 87 if k ~= "trace" then |
| 88 session[k] = nil; | 88 session[k] = nil; |