Software /
code /
prosody
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 |
parent | 148:4c0dcd245d34 |
child | 226: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; |