# HG changeset patch # User Matthew Wild # Date 1231729069 0 # Node ID 4a218377f4e3507a7a8a3508a4a3c1ef70a351e6 # Parent 406b070b5d3ef3ea10a3d45ee5290b82c6434bce BOSH: Fix for error when closed session was in inactive_sessions list diff -r 406b070b5d3e -r 4a218377f4e3 plugins/mod_bosh.lua --- a/plugins/mod_bosh.lua Sun Jan 11 07:15:42 2009 +0000 +++ b/plugins/mod_bosh.lua Mon Jan 12 02:57:49 2009 +0000 @@ -240,11 +240,15 @@ now = now - 3; for session, inactive_since in pairs(inactive_sessions) do - if now - inactive_since > session.bosh_max_inactive then - (session.log or log)("debug", "BOSH client inactive too long, destroying session at %d", now); - sessions[session.sid] = nil; + if session.bosh_max_inactive then + if now - inactive_since > session.bosh_max_inactive then + (session.log or log)("debug", "BOSH client inactive too long, destroying session at %d", now); + sessions[session.sid] = nil; + inactive_sessions[session] = nil; + sm_destroy_session(session, "BOSH client silent for over "..session.bosh_max_inactive.." seconds"); + end + elseif not session.type then inactive_sessions[session] = nil; - sm_destroy_session(session, "BOSH client silent for over "..session.bosh_max_inactive.." seconds"); end end end