From 8dc1c4fcf40bac726c6dd91c5e0416ff4ea832cc Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 7 Sep 2011 01:36:52 +0000 Subject: [PATCH] * Console: Limit max displayed participating tunnels --- .../src/net/i2p/router/web/TunnelRenderer.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java index bed2647d28..ea41f91f04 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java @@ -32,6 +32,8 @@ import net.i2p.util.ObjectCounter; */ public class TunnelRenderer { private RouterContext _context; + + private static final int DISPLAY_LIMIT = 200; public TunnelRenderer(RouterContext ctx) { _context = ctx; @@ -77,12 +79,17 @@ public class TunnelRenderer { if (rs != null) processed = (long)rs.getRate(10*60*1000).getLifetimeTotalValue(); int inactive = 0; + int displayed = 0; for (int i = 0; i < participating.size(); i++) { HopConfig cfg = (HopConfig)participating.get(i); - if (cfg.getProcessedMessagesCount() <= 0) { + long count = cfg.getProcessedMessagesCount(); + if (count <= 0) { inactive++; continue; } + processed += count; + if (++displayed > DISPLAY_LIMIT) + continue; out.write(""); if (cfg.getReceiveTunnel() != null) out.write("" + cfg.getReceiveTunnel().getTunnelId() +""); @@ -120,9 +127,10 @@ public class TunnelRenderer { else out.write("" + _("Participant") + ""); out.write("\n"); - processed += cfg.getProcessedMessagesCount(); } out.write("\n"); + if (displayed > DISPLAY_LIMIT) + out.write("
" + _("Limited display to the {0} tunnels with the highest usage", DISPLAY_LIMIT) + "
\n"); out.write("
" + _("Inactive participating tunnels") + ": " + inactive + "
\n"); out.write("
" + _("Lifetime bandwidth usage") + ": " + DataHelper.formatSize2(processed*1024) + "B
\n"); renderPeers(out); @@ -339,4 +347,9 @@ public class TunnelRenderer { private String _(String s) { return Messages.getString(s, _context); } + + /** translate a string */ + public String _(String s, Object o) { + return Messages.getString(s, o, _context); + } }