comparison mod_component_roundrobin/mod_component_roundrobin.lua @ 1254:b0136968bef1

mod_component_roundrobin: Make sure we don’t try to use destroyed sessions.
author Waqas Hussain <waqas20@gmail.com>
date Thu, 19 Dec 2013 08:54:33 -0500
parents 19cf607111fb
children 3c35283b6780
comparison
equal deleted inserted replaced
1253:19cf607111fb 1254:b0136968bef1
19 19
20 local log = module._log; 20 local log = module._log;
21 21
22 local sessions = {}; 22 local sessions = {};
23 23
24 local last_session;
24 local function on_destroy(session, err) 25 local function on_destroy(session, err)
25 if sessions[session] then 26 if sessions[session] then
27 if last_session == session then last_session = nil; end
26 sessions[session] = nil; 28 sessions[session] = nil;
27 session.on_destroy = nil; 29 session.on_destroy = nil;
28 end 30 end
29 end 31 end
30 32
31 local last_session;
32 local function handle_stanza(event) 33 local function handle_stanza(event)
33 local stanza = event.stanza; 34 local stanza = event.stanza;
34 if next(sessions) then 35 if next(sessions) then
35 stanza.attr.xmlns = nil; 36 stanza.attr.xmlns = nil;
36 last_session = next(sessions, last_session) or next(sessions); 37 last_session = next(sessions, last_session) or next(sessions);