diff mod_smacks/mod_smacks.lua @ 3478:f6319346e2a3

mod_smacks: improved debug logging
author Georg Lukas <georg@op-co.de>
date Wed, 06 Mar 2019 21:44:07 +0100
parents 1f2381492c9f
children 9ef309fb501d
line wrap: on
line diff
--- a/mod_smacks/mod_smacks.lua	Wed Mar 06 21:25:47 2019 +0100
+++ b/mod_smacks/mod_smacks.lua	Wed Mar 06 21:44:07 2019 +0100
@@ -152,11 +152,11 @@
 			end
 		end);
 
-local function request_ack_if_needed(session, force)
+local function request_ack_if_needed(session, force, reason)
 	local queue = session.outgoing_stanza_queue;
 	if session.awaiting_ack == nil and not session.hibernating then
 		if (#queue > max_unacked_stanzas and session.last_queue_count ~= #queue) or force then
-			session.log("debug", "Queuing <r> (in a moment)");
+			session.log("debug", "Queuing <r> (in a moment) from %s - #queue=%d", reason, #queue);
 			session.awaiting_ack = false;
 			session.awaiting_ack_timer = stoppable_timer(1e-06, function ()
 				if not session.awaiting_ack and not session.hibernating then
@@ -202,12 +202,11 @@
 		end
 
 		queue[#queue+1] = cached_stanza;
-		session.log("debug", "#queue = %d", #queue);
 		if session.hibernating then
 			session.log("debug", "hibernating, stanza queued");
 			return nil;
 		end
-		request_ack_if_needed(session, false);
+		request_ack_if_needed(session, false, "outgoing_stanza_filter");
 	end
 	return stanza;
 end
@@ -364,7 +363,7 @@
 
 	origin.log("debug", "#queue = %d", #queue);
 	origin.last_acknowledged_stanza = origin.last_acknowledged_stanza + handled_stanza_count;
-	request_ack_if_needed(origin, false)
+	request_ack_if_needed(origin, false, "handle_a")
 	return true;
 end
 module:hook_stanza(xmlns_sm2, "a", handle_a);
@@ -505,6 +504,7 @@
 	elseif session.username == original_session.username
 	and session.host == original_session.host then
 		session.log("debug", "mod_smacks resuming existing session %s...", get_session_id(original_session));
+		original_session.log("debug", "mod_smacks session resumed from %s...", get_session_id(session));
 		-- TODO: All this should move to sessionmanager (e.g. session:replace(new_session))
 		if original_session.conn then
 			original_session.log("debug", "mod_smacks closing an old connection for this session");
@@ -548,7 +548,7 @@
 			return false;
 		end
 		module:fire_event("smacks-hibernation-end", {origin = session, resumed = original_session, queue = queue});
-		request_ack_if_needed(original_session, true);
+		request_ack_if_needed(original_session, true, "handle_resume");
 	else
 		module:log("warn", "Client %s@%s[%s] tried to resume stream for %s@%s[%s]",
 			session.username or "?", session.host or "?", session.type,