From b5ad7642bc85f904a308a84c565fca69bf14976f Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Sun, 1 May 2005 00:48:15 +0000
Subject: [PATCH] 2005-04-30  jrandom     * Added a small new page to the web
 console (/peers.jsp) which contains       the peer connection information. 
 This will be cleaned up a lot more       before 0.6 is out, but its a start.

---
 .../src/net/i2p/router/web/PeerHelper.java    | 37 +++++++++++++++++++
 apps/routerconsole/jsp/peers.jsp              | 21 +++++++++++
 apps/routerconsole/jsp/summary.jsp            |  2 +-
 history.txt                                   |  7 +++-
 .../src/net/i2p/router/RouterVersion.java     |  4 +-
 .../router/transport/TransportManager.java    | 21 ++++++-----
 6 files changed, 78 insertions(+), 14 deletions(-)
 create mode 100644 apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java
 create mode 100644 apps/routerconsole/jsp/peers.jsp

diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java
new file mode 100644
index 0000000000..0e65533246
--- /dev/null
+++ b/apps/routerconsole/java/src/net/i2p/router/web/PeerHelper.java
@@ -0,0 +1,37 @@
+package net.i2p.router.web;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import net.i2p.router.RouterContext;
+
+public class PeerHelper {
+    private RouterContext _context;
+    private Writer _out;
+    /**
+     * Configure this bean to query a particular router context
+     *
+     * @param contextId begging few characters of the routerHash, or null to pick
+     *                  the first one we come across.
+     */
+    public void setContextId(String contextId) {
+        try {
+            _context = ContextHelper.getContext(contextId);
+        } catch (Throwable t) {
+            t.printStackTrace();
+        }
+    }
+    
+    public PeerHelper() {}
+    
+    public void setOut(Writer out) { _out = out; }
+    
+    public String getPeerSummary() {
+        try {
+            _context.commSystem().renderStatusHTML(_out);
+        } catch (IOException ioe) {
+            ioe.printStackTrace();
+        }
+        return "";
+    }
+}
diff --git a/apps/routerconsole/jsp/peers.jsp b/apps/routerconsole/jsp/peers.jsp
new file mode 100644
index 0000000000..85766b76bf
--- /dev/null
+++ b/apps/routerconsole/jsp/peers.jsp
@@ -0,0 +1,21 @@
+<%@page contentType="text/html"%>
+<%@page pageEncoding="UTF-8"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html><head>
+<title>I2P Router Console - peer connections</title>
+<link rel="stylesheet" href="default.css" type="text/css" />
+</head><body>
+
+<%@include file="nav.jsp" %>
+<%@include file="summary.jsp" %>
+
+<div class="main" id="main">
+ <jsp:useBean class="net.i2p.router.web.PeerHelper" id="peerHelper" scope="request" />
+ <jsp:setProperty name="peerHelper" property="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
+ <jsp:setProperty name="peerHelper" property="out" value="<%=out%>" />
+ <jsp:getProperty name="peerHelper" property="peerSummary" />
+</div>
+
+</body>
+</html>
diff --git a/apps/routerconsole/jsp/summary.jsp b/apps/routerconsole/jsp/summary.jsp
index eeb0ddda2c..741717c395 100644
--- a/apps/routerconsole/jsp/summary.jsp
+++ b/apps/routerconsole/jsp/summary.jsp
@@ -33,7 +33,7 @@
     }
  %><hr />
  
- <u><b>Peers</b></u><br />
+ <u><b><a href="peers.jsp">Peers</a></b></u><br />
  <b>Active:</b> <jsp:getProperty name="helper" property="activePeers" />/<jsp:getProperty name="helper" property="activeProfiles" /><br />
  <b>Fast:</b> <jsp:getProperty name="helper" property="fastPeers" /><br />
  <b>High capacity:</b> <jsp:getProperty name="helper" property="highCapacityPeers" /><br />
diff --git a/history.txt b/history.txt
index 0a219297fb..96a31763f9 100644
--- a/history.txt
+++ b/history.txt
@@ -1,4 +1,9 @@
-$Id: history.txt,v 1.201 2005/04/29 01:24:15 jrandom Exp $
+$Id: history.txt,v 1.202 2005/04/30 18:26:19 jrandom Exp $
+
+2005-04-30  jrandom
+    * Added a small new page to the web console (/peers.jsp) which contains 
+      the peer connection information.  This will be cleaned up a lot more 
+      before 0.6 is out, but its a start.
 
 2005-04-30  jrandom
     * Reduced some SimpleTimer churn
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index 6d6fde89f3..ec294afe04 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
  *
  */
 public class RouterVersion {
-    public final static String ID = "$Revision: 1.192 $ $Date: 2005/04/29 01:24:15 $";
+    public final static String ID = "$Revision: 1.193 $ $Date: 2005/04/30 18:26:19 $";
     public final static String VERSION = "0.5.0.7";
-    public final static long BUILD = 4;
+    public final static long BUILD = 5;
     public static void main(String args[]) {
         System.out.println("I2P Router version: " + VERSION);
         System.out.println("Router ID: " + RouterVersion.ID);
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index 76c2080a50..aaebcedbb0 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -16,6 +16,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.TreeMap;
 import net.i2p.data.Hash;
 import net.i2p.data.RouterAddress;
 import net.i2p.data.RouterIdentity;
@@ -176,8 +177,16 @@ public class TransportManager implements TransportEventListener {
     }
     
     public void renderStatusHTML(Writer out) throws IOException {
-        StringBuffer buf = new StringBuffer(8*1024);
-        buf.append("<h2>Transport Manager</h2>\n");
+        TreeMap transports = new TreeMap();
+        for (int i = 0; i < _transports.size(); i++) {
+            Transport t = (Transport)_transports.get(i);
+            transports.put(t.getStyle(), t);
+        }
+        for (Iterator iter = transports.values().iterator(); iter.hasNext(); ) {
+            Transport t= (Transport)iter.next();
+            t.renderStatusHTML(out);
+        }
+        StringBuffer buf = new StringBuffer(4*1024);
         buf.append("Listening on: <br /><pre>\n");
         for (int i = 0; i < _transports.size(); i++) {
             Transport t = (Transport)_transports.get(i);
@@ -186,14 +195,6 @@ public class TransportManager implements TransportEventListener {
         }
         buf.append("</pre>\n");
         out.write(buf.toString());
-        for (Iterator iter = _transports.iterator(); iter.hasNext(); ) {
-            Transport t = (Transport)iter.next();
-            //String str = t.renderStatusHTML();
-            //if (str != null)
-            //    buf.append(str);
-            t.renderStatusHTML(out);
-        }
-        //out.write(buf.toString());
         out.flush();
     }
 }
-- 
GitLab