net/xmppserver_listener.lua

changeset 163
3fec9b512d4e
parent 148
4c0dcd245d34
child 226
ba4711c4e8d2
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;

mercurial