diff options
author | Matthew Wild <mwild1@gmail.com> | 2011-01-04 21:38:14 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2011-01-04 21:38:14 +0000 |
commit | 7745bdd7d6ca7871cb2fd3017500843c1d0b49ac (patch) | |
tree | e022894ae84cb4866b56b3b3ffcdcf9027193a45 | |
parent | e29ff95c8fb4573afe73894b6397f21a5bc42a99 (diff) | |
download | prosody-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.lua | 11 |
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 |