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; |