From e3d945201bba8d5399099f20974b151a574b3485 Mon Sep 17 00:00:00 2001 From: zzz Date: Mon, 9 Nov 2009 17:11:20 +0000 Subject: [PATCH] - Add transport table to netdb.jsp --- .../src/net/i2p/router/web/NetDbRenderer.java | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java index 4ef42c008..d2c1827a4 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java @@ -157,6 +157,7 @@ public class NetDbRenderer { ObjectCounter versions = new ObjectCounter(); ObjectCounter countries = new ObjectCounter(); + int[] transportCount = new int[8]; Set routers = new TreeSet(new RouterInfoComparator()); routers.addAll(_context.netDb().getRouters()); @@ -176,10 +177,12 @@ public class NetDbRenderer { String country = _context.commSystem().getCountry(key); if(country != null) countries.increment(country); + transportCount[classifyTransports(ri)]++; } } - buf.append("
"); + buf.append("
").append(_("Network Database Router Statistics")).append("
"); + // versions table List versionList = new ArrayList(versions.objects()); if (versionList.size() > 0) { Collections.sort(versionList, Collections.reverseOrder(new TrustedUpdate.VersionComparator())); @@ -196,6 +199,22 @@ public class NetDbRenderer { out.write(buf.toString()); buf.setLength(0); + // transports table + buf.append("\n"); + buf.append("\n"); + for (int i = 0; i < 8; i++) { + int num = transportCount[i]; + if (num > 0) { + buf.append("\n"); + } + } + buf.append("
" + _("Addresses") + "" + _("Count") + "
").append(_(TNAMES[i])); + buf.append("").append(num).append("
\n"); + buf.append("
"); + out.write(buf.toString()); + buf.setLength(0); + + // country table List countryList = new ArrayList(countries.objects()); if (countryList.size() > 0) { Collections.sort(countryList, new CountryComparator()); @@ -210,6 +229,7 @@ public class NetDbRenderer { } buf.append("
\n"); } + buf.append("
"); out.write(buf.toString()); out.flush(); @@ -277,11 +297,42 @@ public class NetDbRenderer { buf.append("\n"); } + private static final int SSU = 1; + private static final int SSUI = 2; + private static final int NTCP = 4; + private static final String[] TNAMES = { _x("Hidden or starting up"), _x("SSU"), _x("SSU with introducers"), "", + _x("NTCP"), _x("NTCP and SSU"), _x("NTCP and SSU with introducers"), "" }; + /** + * what transport types + */ + private int classifyTransports(RouterInfo info) { + int rv = 0; + String hash = info.getIdentity().getHash().toBase64(); + for (Iterator iter = info.getAddresses().iterator(); iter.hasNext(); ) { + RouterAddress addr = (RouterAddress)iter.next(); + String style = addr.getTransportStyle(); + if (style.equals("NTCP")) { + rv |= NTCP; + } else if (style.equals("SSU")) { + if (addr.getOptions().getProperty("iport0") != null) + rv |= SSUI; + else + rv |= SSU; + } + } + return rv; + } + /** translate a string */ private String _(String s) { return Messages.getString(s, _context); } + /** tag only */ + private static final String _x(String s) { + return s; + } + /** * translate a string with a parameter * This is a lot more expensive than _(s), so use sparingly.