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;