aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2011-01-04 21:38:14 +0000
committerMatthew Wild <mwild1@gmail.com>2011-01-04 21:38:14 +0000
commit7745bdd7d6ca7871cb2fd3017500843c1d0b49ac (patch)
treee022894ae84cb4866b56b3b3ffcdcf9027193a45
parente29ff95c8fb4573afe73894b6397f21a5bc42a99 (diff)
downloadprosody-7745bdd7d6ca7871cb2fd3017500843c1d0b49ac.tar.gz
prosody-7745bdd7d6ca7871cb2fd3017500843c1d0b49ac.zip
mod_bosh: Fix for miscalculating inactivity, causing disconnects under a steady stream of traffic
-rw-r--r--plugins/mod_bosh.lua11
1 files changed, 6 insertions, 5 deletions
diff --git a/plugins/mod_bosh.lua b/plugins/mod_bosh.lua
index 58254169..b9152c9f 100644
--- a/plugins/mod_bosh.lua
+++ b/plugins/mod_bosh.lua
@@ -125,6 +125,12 @@ 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
+
local r = session.requests;
log("debug", "Session %s has %d out of %d requests open", request.sid, #r, session.bosh_hold);
log("debug", "and there are %d things in the send_buffer", #session.send_buffer);
@@ -154,11 +160,6 @@ function handle_request(method, body, request)
request.reply_before = os_time() + session.bosh_wait;
waiting_requests[request] = true;
end
- if inactive_sessions[session] then
- -- Session was marked as inactive, since we have
- -- a request open now, unmark it
- inactive_sessions[session] = nil;
- end
end
return true; -- Inform httpserver we shall reply later