Changeset

1240:397b6e9c1568

mod_console: Allow restricting results to matching JIDs in s2s:show()
author Matthew Wild <mwild1@gmail.com>
date Sat, 30 May 2009 14:33:40 +0100
parents 1239:335d9a612477
children 1241:9c53fb182044
files plugins/mod_console.lua
diffstat 1 files changed, 32 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_console.lua	Sat May 30 14:07:14 2009 +0100
+++ b/plugins/mod_console.lua	Sat May 30 14:33:40 2009 +0100
@@ -195,45 +195,48 @@
 end
 
 def_env.s2s = {};
-function def_env.s2s:show()
+function def_env.s2s:show(match_jid)
 	local _print = self.session.print;
 	local print = self.session.print;
 	for host, host_session in pairs(hosts) do
 		print = function (...) _print(host); _print(...); print = _print; end
 		for remotehost, session in pairs(host_session.s2sout) do
-			print("    "..host.." -> "..remotehost);
-			if session.sendq then
-				print("        There are "..#session.sendq.." queued outgoing stanzas for this connection");
-			end
-			if session.type == "s2sout_unauthed" then
-				if session.connecting then
-					print("        Connection not yet established");
-					if not session.srv_hosts then
-						if not session.conn then
-							print("        We do not yet have a DNS answer for this host's SRV records");
-						else
-							print("        This host has no SRV records, using A record instead");
+			if (not match_jid) or remotehost:match(match_jid) or host:match(match_jid) then
+				print("    "..host.." -> "..remotehost);
+				if session.sendq then
+					print("        There are "..#session.sendq.." queued outgoing stanzas for this connection");
+				end
+				if session.type == "s2sout_unauthed" then
+					if session.connecting then
+						print("        Connection not yet established");
+						if not session.srv_hosts then
+							if not session.conn then
+								print("        We do not yet have a DNS answer for this host's SRV records");
+							else
+								print("        This host has no SRV records, using A record instead");
+							end
+						elseif session.srv_choice then
+							print("        We are on SRV record "..session.srv_choice.." of "..#session.srv_hosts);
+							local srv_choice = session.srv_hosts[session.srv_choice];
+							print("        Using "..(srv_choice.target or ".")..":"..(srv_choice.port or 5269));
 						end
-					elseif session.srv_choice then
-						print("        We are on SRV record "..session.srv_choice.." of "..#session.srv_hosts);
-						local srv_choice = session.srv_hosts[session.srv_choice];
-						print("        Using "..(srv_choice.target or ".")..":"..(srv_choice.port or 5269));
+					elseif session.notopen then
+						print("        The <stream> has not yet been opened");
+					elseif not session.dialback_key then
+						print("        Dialback has not been initiated yet");
+					elseif session.dialback_key then
+						print("        Dialback has been requested, but no result received");
 					end
-				elseif session.notopen then
-					print("        The <stream> has not yet been opened");
-				elseif not session.dialback_key then
-					print("        Dialback has not been initiated yet");
-				elseif session.dialback_key then
-					print("        Dialback has been requested, but no result received");
 				end
 			end
-		end
+		end	
 		
 		for session in pairs(incoming_s2s) do
-			if session.to_host == host then
+			if session.to_host == host and ((not match_jid) or host:match(match_jid) 
+				or (session.from_host and session.from_host:match(match_jid))) then
 				print("    "..host.." <- "..(session.from_host or "(unknown)"));
 				if session.type == "s2sin_unauthed" then
-					print("        Connection not yet authenticated");
+						print("        Connection not yet authenticated");
 				end
 				for name in pairs(session.hosts) do
 					if name ~= session.from_host then
@@ -242,10 +245,12 @@
 				end
 			end
 		end
+		
 		print = _print;
 	end
+	
 	for session in pairs(incoming_s2s) do
-		if not session.to_host then
+		if not session.to_host and ((not match_jid) or session.from_host and session.from_host:match(match_jid)) then
 			print("Other incoming s2s connections");
 			print("    (unknown) <- "..(session.from_host or "(unknown)"));			
 		end