From 8e7d31a5e6029a19e43bb3decd805a8aaea1d8fa Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 17 Feb 2026 08:49:57 -0500 Subject: [PATCH] Console: TunnelRenderer minor refactor --- .../router/web/helpers/TunnelRenderer.java | 95 ++++++++++--------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java index 708f66ad9..c3c37eb31 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/TunnelRenderer.java @@ -132,48 +132,7 @@ class TunnelRenderer { processed += cfg.getRecentMessagesCount(); if (++displayed > DISPLAY_LIMIT) continue; - out.write(""); - long recv = cfg.getReceiveTunnelId(); - if (recv != 0) - out.write("" + - recv + ""); - else - out.write("n/a"); - Hash from = cfg.getReceiveFrom(); - if (from != null) - out.write("" + netDbLink(from) +""); - else - out.write(" "); - long send = cfg.getSendTunnelId(); - if (send != 0) - out.write("" + send +""); - else - out.write(" "); - Hash to = cfg.getSendTo(); - if (to != null) - out.write("" + netDbLink(to) +""); - else - out.write(" "); - long timeLeft = cfg.getExpiration() - now; - if (timeLeft > 0) - out.write("" + DataHelper.formatDuration2(timeLeft) + ""); - else - out.write("(" + _t("grace period") + ")"); - out.write("" + DataHelper.formatSize2(count * 1024) + "B"); - int lifetime = (int) ((now - cfg.getCreation()) / 1000); - if (lifetime <= 0) - lifetime = 1; - if (lifetime > 10*60) - lifetime = 10*60; - long bps = 1024L * count / lifetime; - out.write("" + DataHelper.formatSize2Decimal(bps) + "Bps"); - if (to == null) - out.write("" + _t("Outbound Endpoint") + ""); - else if (from == null) - out.write("" + _t("Inbound Gateway") + ""); - else - out.write("" + _t("Participant") + ""); - out.write("\n"); + renderTunnel(out, now, count, cfg); } if (!participating.isEmpty()) out.write("\n"); @@ -213,7 +172,7 @@ class TunnelRenderer { List sort = counts.sortedObjects(); for (Hash h : sort) { int count = counts.count(h); - if (count <= 1) + if (count < 4) break; if (++displayed > DISPLAY_LIMIT) break; @@ -222,6 +181,7 @@ class TunnelRenderer { out.write("" + DataHelper.formatSize2(bws.count(h) * 1024) + "B\n"); } out.write("\n"); + if (displayed <= 0) out.write("
" + _t("none") + "
\n"); } @@ -251,6 +211,55 @@ class TunnelRenderer { } + /** + * Output one table row for one tunnel + * @since 0.9.69 split out from above + */ + private void renderTunnel(Writer out, long now, int count, HopConfig cfg) throws IOException { + out.write(""); + long recv = cfg.getReceiveTunnelId(); + if (recv != 0) + out.write("" + + recv + ""); + else + out.write("n/a"); + Hash from = cfg.getReceiveFrom(); + if (from != null) + out.write("" + netDbLink(from) +""); + else + out.write(" "); + long send = cfg.getSendTunnelId(); + if (send != 0) + out.write("" + send +""); + else + out.write(" "); + Hash to = cfg.getSendTo(); + if (to != null) + out.write("" + netDbLink(to) +""); + else + out.write(" "); + long timeLeft = cfg.getExpiration() - now; + if (timeLeft > 0) + out.write("" + DataHelper.formatDuration2(timeLeft) + ""); + else + out.write("(" + _t("grace period") + ")"); + out.write("" + DataHelper.formatSize2(count * 1024) + "B"); + int lifetime = (int) ((now - cfg.getCreation()) / 1000); + if (lifetime <= 0) + lifetime = 1; + if (lifetime > 10*60) + lifetime = 10*60; + long bps = 1024L * count / lifetime; + out.write("" + DataHelper.formatSize2Decimal(bps) + "Bps"); + if (to == null) + out.write("" + _t("Outbound Endpoint") + ""); + else if (from == null) + out.write("" + _t("Inbound Gateway") + ""); + else + out.write("" + _t("Participant") + ""); + out.write("\n"); + } + /** @since 0.9.33 */ static String range(int f, int t) { return Math.round(f * 1.024f) + " - " + (Math.round(t * 1.024f) - 1) + " KBps";