From c91a86c73a581733158cc09e8ba4583b079b10f2 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Fri, 24 Oct 2008 18:13:54 +0100 Subject: Clean up session when s2s connections are disconnected --- net/xmppserver_listener.lua | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'net') diff --git a/net/xmppserver_listener.lua b/net/xmppserver_listener.lua index 7c5b0d9c..111633d8 100644 --- a/net/xmppserver_listener.lua +++ b/net/xmppserver_listener.lua @@ -5,6 +5,7 @@ local init_xmlhandlers = require "core.xmlhandlers" local sm_new_session = require "core.sessionmanager".new_session; local s2s_new_incoming = require "core.s2smanager".new_incoming; local s2s_streamopened = require "core.s2smanager".streamopened; +local s2s_destroy_session = require "core.s2smanager".destroy_session; local connlisteners_register = require "net.connlisteners".register; @@ -70,6 +71,13 @@ function xmppserver.listener(conn, data) end function xmppserver.disconnect(conn) + local session = sessions[conn]; + if session then + s2s_destroy_session(session); + sessions[conn] = nil; + session = nil; + collectgarbage("collect"); + end end function xmppserver.register_outgoing(conn, session) -- cgit v1.2.3