comparison mod_smacks/mod_smacks.lua @ 2140:3a94b3cd31e2

mod_smacks: added new events for hibernation start/end
author tmolitor <thilo@eightysoft.de>
date Sun, 27 Mar 2016 16:13:20 +0200
parents f1be45c9a742
children c472a454be61
comparison
equal deleted inserted replaced
2139:17408ddd34b0 2140:3a94b3cd31e2
279 else 279 else
280 session.log("debug", "mod_smacks hibernating session for up to %d seconds", resume_timeout); 280 session.log("debug", "mod_smacks hibernating session for up to %d seconds", resume_timeout);
281 local hibernate_time = os_time(); -- Track the time we went into hibernation 281 local hibernate_time = os_time(); -- Track the time we went into hibernation
282 session.hibernating = hibernate_time; 282 session.hibernating = hibernate_time;
283 local resumption_token = session.resumption_token; 283 local resumption_token = session.resumption_token;
284 module:fire_event("smacks-hibernation-start", {origin = session, queue = session.outgoing_stanza_queue});
284 timer.add_task(resume_timeout, function () 285 timer.add_task(resume_timeout, function ()
285 session.log("debug", "mod_smacks hibernation timeout reached..."); 286 session.log("debug", "mod_smacks hibernation timeout reached...");
286 -- We need to check the current resumption token for this resource 287 -- We need to check the current resumption token for this resource
287 -- matches the smacks session this timer is for in case it changed 288 -- matches the smacks session this timer is for in case it changed
288 -- (for example, the client may have bound a new resource and 289 -- (for example, the client may have bound a new resource and
376 h = stanza.attr.h })); 377 h = stanza.attr.h }));
377 378
378 -- Ok, we need to re-send any stanzas that the client didn't see 379 -- Ok, we need to re-send any stanzas that the client didn't see
379 -- ...they are what is now left in the outgoing stanza queue 380 -- ...they are what is now left in the outgoing stanza queue
380 local queue = original_session.outgoing_stanza_queue; 381 local queue = original_session.outgoing_stanza_queue;
382 module:fire_event("smacks-hibernation-end", {origin = session, queue = queue});
381 session.log("debug", "#queue = %d", #queue); 383 session.log("debug", "#queue = %d", #queue);
382 for i=1,#queue do 384 for i=1,#queue do
383 session.send(queue[i]); 385 session.send(queue[i]);
384 end 386 end
385 session.log("debug", "#queue = %d -- after send", #queue); 387 session.log("debug", "#queue = %d -- after send", #queue);