Comparison

plugins/mod_bosh.lua @ 7656:296543556065

mod_bosh: Update BOSH wait timeout logic to work despite the addition of deferred requests
author Matthew Wild <mwild1@gmail.com>
date Fri, 02 Sep 2016 23:25:11 +0100
parent 7655:132819f409dc
child 7660:d2825ddaac19
comparison
equal deleted inserted replaced
7655:132819f409dc 7656:296543556065
195 end 195 end
196 196
197 if not response.finished then 197 if not response.finished then
198 -- We're keeping this request open, to respond later 198 -- We're keeping this request open, to respond later
199 log("debug", "Have nothing to say, so leaving request unanswered for now"); 199 log("debug", "Have nothing to say, so leaving request unanswered for now");
200 if session.bosh_wait then
201 session.bosh_wait_timer = module:add_timer(session.bosh_wait, after_bosh_wait, request, session)
202 end
203 end 200 end
204 201
205 if session.bosh_terminate then 202 if session.bosh_terminate then
206 session.log("debug", "Closing session with %d requests open", #session.requests); 203 session.log("debug", "Closing session with %d requests open", #session.requests);
207 session:close(); 204 session:close();
208 return nil; 205 return nil;
209 else 206 else
207 if session.bosh_wait and #session.requests > 0 then
208 session.bosh_wait_timer = module:add_timer(session.bosh_wait, after_bosh_wait, session.requests[1], session)
209 end
210
210 return true; -- Inform http server we shall reply later 211 return true; -- Inform http server we shall reply later
211 end 212 end
212 elseif response.finished then 213 elseif response.finished then
213 return; -- A response has been sent already 214 return; -- A response has been sent already
214 end 215 end