Mercurial > prosody-hg
comparison net/xmppserver_listener.lua @ 163:3fec9b512d4e
Clean up session when s2s connections are disconnected
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 24 Oct 2008 18:13:54 +0100 |
| parents | 4c0dcd245d34 |
| children | ba4711c4e8d2 |
comparison
equal
deleted
inserted
replaced
| 162:b1099bdd2724 | 163:3fec9b512d4e |
|---|---|
| 3 local lxp = require "lxp" | 3 local lxp = require "lxp" |
| 4 local init_xmlhandlers = require "core.xmlhandlers" | 4 local init_xmlhandlers = require "core.xmlhandlers" |
| 5 local sm_new_session = require "core.sessionmanager".new_session; | 5 local sm_new_session = require "core.sessionmanager".new_session; |
| 6 local s2s_new_incoming = require "core.s2smanager".new_incoming; | 6 local s2s_new_incoming = require "core.s2smanager".new_incoming; |
| 7 local s2s_streamopened = require "core.s2smanager".streamopened; | 7 local s2s_streamopened = require "core.s2smanager".streamopened; |
| 8 local s2s_destroy_session = require "core.s2smanager".destroy_session; | |
| 8 | 9 |
| 9 local connlisteners_register = require "net.connlisteners".register; | 10 local connlisteners_register = require "net.connlisteners".register; |
| 10 | 11 |
| 11 local t_insert = table.insert; | 12 local t_insert = table.insert; |
| 12 local t_concat = table.concat; | 13 local t_concat = table.concat; |
| 68 session.data(conn, data); | 69 session.data(conn, data); |
| 69 end | 70 end |
| 70 end | 71 end |
| 71 | 72 |
| 72 function xmppserver.disconnect(conn) | 73 function xmppserver.disconnect(conn) |
| 74 local session = sessions[conn]; | |
| 75 if session then | |
| 76 s2s_destroy_session(session); | |
| 77 sessions[conn] = nil; | |
| 78 session = nil; | |
| 79 collectgarbage("collect"); | |
| 80 end | |
| 73 end | 81 end |
| 74 | 82 |
| 75 function xmppserver.register_outgoing(conn, session) | 83 function xmppserver.register_outgoing(conn, session) |
| 76 session.direction = "outgoing"; | 84 session.direction = "outgoing"; |
| 77 sessions[conn] = session; | 85 sessions[conn] = session; |
