From 3df725786b93b54f681fd0baa3f004c0d961488a Mon Sep 17 00:00:00 2001
From: Matthew Wild <mwild1@gmail.com>
Date: Sun, 5 Jun 2011 11:48:57 +0100
Subject: mod_bosh: Mark a session as active when a request comes in, even if
 we don't end up holding that request, fixes BOSH ghosts (thanks smoku)

---
 plugins/mod_bosh.lua | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'plugins')

diff --git a/plugins/mod_bosh.lua b/plugins/mod_bosh.lua
index a747f3cb..5ef6b18e 100644
--- a/plugins/mod_bosh.lua
+++ b/plugins/mod_bosh.lua
@@ -125,11 +125,11 @@ function handle_request(method, body, request)
 	
 	local session = sessions[request.sid];
 	if session then
-               -- Session was marked as inactive, since we have
-               -- a request open now, unmark it
-               if inactive_sessions[session] then
-                       inactive_sessions[session] = nil;
-               end
+		-- Session was marked as inactive, since we have
+		-- a request open now, unmark it
+		if inactive_sessions[session] and #session.requests > 0 then
+			inactive_sessions[session] = nil;
+		end
 
 		local r = session.requests;
 		log("debug", "Session %s has %d out of %d requests open", request.sid, #r, session.bosh_hold);
-- 
cgit v1.2.3