diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs
index 57fb808dc1..ffcc5840e8 100644
--- a/OpenSim/Framework/AgentCircuitData.cs
+++ b/OpenSim/Framework/AgentCircuitData.cs
@@ -98,6 +98,11 @@ namespace OpenSim.Framework
///
public string lastname;
+ ///
+ /// Agent's full name.
+ ///
+ public string Name { get { return string.Format("{0} {1}", firstname, lastname); } }
+
///
/// Random Unique GUID for this session. Client gets this at login and it's
/// only supposed to be disclosed over secure channels
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 368b753ab5..e8dc728ded 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -994,18 +994,7 @@ namespace OpenSim
break;
case "circuits":
- System.Text.StringBuilder acd = new System.Text.StringBuilder("Agent Circuits:\n");
- m_sceneManager.ForEachScene(
- delegate(Scene scene)
- {
- //this.HttpServer.
- acd.AppendFormat("{0}:\n", scene.RegionInfo.RegionName);
- foreach (AgentCircuitData aCircuit in scene.AuthenticateHandler.GetAgentCircuits().Values)
- acd.AppendFormat("\t{0} {1} ({2})\n", aCircuit.firstname, aCircuit.lastname, (aCircuit.child ? "Child" : "Root"));
- }
- );
-
- MainConsole.Instance.Output(acd.ToString());
+ HandleShowCircuits();
break;
case "http-handlers":
@@ -1098,19 +1087,45 @@ namespace OpenSim
}
}
+ private void HandleShowCircuits()
+ {
+ ConsoleDisplayTable cdt = new ConsoleDisplayTable();
+ cdt.AddColumn("Region", 20);
+ cdt.AddColumn("Avatar name", 24);
+ cdt.AddColumn("Type", 5);
+ cdt.AddColumn("Code", 10);
+ cdt.AddColumn("IP", 16);
+ cdt.AddColumn("Viewer Name", 24);
+
+ m_sceneManager.ForEachScene(
+ s =>
+ {
+ foreach (AgentCircuitData aCircuit in s.AuthenticateHandler.GetAgentCircuits().Values)
+ cdt.AddRow(
+ s.Name,
+ aCircuit.Name,
+ aCircuit.child ? "child" : "root",
+ aCircuit.circuitcode.ToString(),
+ aCircuit.IPAddress.ToString(),
+ aCircuit.Viewer);
+ });
+
+ MainConsole.Instance.Output(cdt.ToString());
+ }
+
private void HandleShowConnections()
{
ConsoleDisplayTable cdt = new ConsoleDisplayTable();
cdt.AddColumn("Region", 20);
- cdt.AddColumn("Avatar name", 25);
- cdt.AddColumn("Remote endpoint", 23);
- cdt.AddColumn("Circuit number", 14);
+ cdt.AddColumn("Avatar name", 24);
+ cdt.AddColumn("Circuit code", 12);
+ cdt.AddColumn("Endpoint", 23);
cdt.AddColumn("Active?", 7);
m_sceneManager.ForEachScene(
s => s.ForEachClient(
c => cdt.AddRow(
- s.RegionInfo.RegionName,
+ s.Name,
c.Name,
c.RemoteEndPoint.ToString(),
c.CircuitCode.ToString(),