- Add transport table to netdb.jsp
This commit is contained in:
@ -157,6 +157,7 @@ public class NetDbRenderer {
|
|||||||
|
|
||||||
ObjectCounter<String> versions = new ObjectCounter();
|
ObjectCounter<String> versions = new ObjectCounter();
|
||||||
ObjectCounter<String> countries = new ObjectCounter();
|
ObjectCounter<String> countries = new ObjectCounter();
|
||||||
|
int[] transportCount = new int[8];
|
||||||
|
|
||||||
Set routers = new TreeSet(new RouterInfoComparator());
|
Set routers = new TreeSet(new RouterInfoComparator());
|
||||||
routers.addAll(_context.netDb().getRouters());
|
routers.addAll(_context.netDb().getRouters());
|
||||||
@ -176,10 +177,12 @@ public class NetDbRenderer {
|
|||||||
String country = _context.commSystem().getCountry(key);
|
String country = _context.commSystem().getCountry(key);
|
||||||
if(country != null)
|
if(country != null)
|
||||||
countries.increment(country);
|
countries.increment(country);
|
||||||
|
transportCount[classifyTransports(ri)]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
buf.append("<table border=\"0\" cellspacing=\"30\"><tr><td>");
|
buf.append("<table border=\"0\" cellspacing=\"30\"><tr><th colspan=\"3\">").append(_("Network Database Router Statistics")).append("</th><tr><td>");
|
||||||
|
// versions table
|
||||||
List<String> versionList = new ArrayList(versions.objects());
|
List<String> versionList = new ArrayList(versions.objects());
|
||||||
if (versionList.size() > 0) {
|
if (versionList.size() > 0) {
|
||||||
Collections.sort(versionList, Collections.reverseOrder(new TrustedUpdate.VersionComparator()));
|
Collections.sort(versionList, Collections.reverseOrder(new TrustedUpdate.VersionComparator()));
|
||||||
@ -196,6 +199,22 @@ public class NetDbRenderer {
|
|||||||
out.write(buf.toString());
|
out.write(buf.toString());
|
||||||
buf.setLength(0);
|
buf.setLength(0);
|
||||||
|
|
||||||
|
// transports table
|
||||||
|
buf.append("<table>\n");
|
||||||
|
buf.append("<tr><th align=\"left\">" + _("Addresses") + "</th><th>" + _("Count") + "</th></tr>\n");
|
||||||
|
for (int i = 0; i < 8; i++) {
|
||||||
|
int num = transportCount[i];
|
||||||
|
if (num > 0) {
|
||||||
|
buf.append("<tr><td>").append(_(TNAMES[i]));
|
||||||
|
buf.append("</td><td align=\"center\">").append(num).append("</td></tr>\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buf.append("</table>\n");
|
||||||
|
buf.append("</td><td>");
|
||||||
|
out.write(buf.toString());
|
||||||
|
buf.setLength(0);
|
||||||
|
|
||||||
|
// country table
|
||||||
List<String> countryList = new ArrayList(countries.objects());
|
List<String> countryList = new ArrayList(countries.objects());
|
||||||
if (countryList.size() > 0) {
|
if (countryList.size() > 0) {
|
||||||
Collections.sort(countryList, new CountryComparator());
|
Collections.sort(countryList, new CountryComparator());
|
||||||
@ -210,6 +229,7 @@ public class NetDbRenderer {
|
|||||||
}
|
}
|
||||||
buf.append("</table>\n");
|
buf.append("</table>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
buf.append("</td></tr></table>");
|
buf.append("</td></tr></table>");
|
||||||
out.write(buf.toString());
|
out.write(buf.toString());
|
||||||
out.flush();
|
out.flush();
|
||||||
@ -277,11 +297,42 @@ public class NetDbRenderer {
|
|||||||
buf.append("</td></tr>\n");
|
buf.append("</td></tr>\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 */
|
/** translate a string */
|
||||||
private String _(String s) {
|
private String _(String s) {
|
||||||
return Messages.getString(s, _context);
|
return Messages.getString(s, _context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** tag only */
|
||||||
|
private static final String _x(String s) {
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* translate a string with a parameter
|
* translate a string with a parameter
|
||||||
* This is a lot more expensive than _(s), so use sparingly.
|
* This is a lot more expensive than _(s), so use sparingly.
|
||||||
|
Reference in New Issue
Block a user