peers.jsp:
Show definitions panel if any transport is enabled (was: only for UDP). Use div.wideload for the whole page (was: only for transports and broken if only one of them enabled).
This commit is contained in:
@ -8,11 +8,11 @@
|
|||||||
</head><body>
|
</head><body>
|
||||||
<%@include file="summary.jsi" %>
|
<%@include file="summary.jsi" %>
|
||||||
<h1><%=intl._("I2P Network Peers")%></h1>
|
<h1><%=intl._("I2P Network Peers")%></h1>
|
||||||
<div class="main" id="main">
|
<div class="main" id="main"><div class="wideload">
|
||||||
<jsp:useBean class="net.i2p.router.web.PeerHelper" id="peerHelper" scope="request" />
|
<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="contextId" value="<%=(String)session.getAttribute("i2p.contextId")%>" />
|
||||||
<jsp:setProperty name="peerHelper" property="writer" value="<%=out%>" />
|
<jsp:setProperty name="peerHelper" property="writer" value="<%=out%>" />
|
||||||
<jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
|
<jsp:setProperty name="peerHelper" property="urlBase" value="peers.jsp" />
|
||||||
<jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter("sort") != null ? request.getParameter("sort") : ""%>" />
|
<jsp:setProperty name="peerHelper" property="sort" value="<%=request.getParameter("sort") != null ? request.getParameter("sort") : ""%>" />
|
||||||
<jsp:getProperty name="peerHelper" property="peerSummary" />
|
<jsp:getProperty name="peerHelper" property="peerSummary" />
|
||||||
</div></body></html>
|
</div></div></body></html>
|
||||||
|
@ -499,6 +499,11 @@ public class TransportManager implements TransportEventListener {
|
|||||||
Transport t= (Transport)iter.next();
|
Transport t= (Transport)iter.next();
|
||||||
t.renderStatusHTML(out, urlBase, sortFlags);
|
t.renderStatusHTML(out, urlBase, sortFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_transports.size() > 0) {
|
||||||
|
out.write(getTransportsLegend());
|
||||||
|
}
|
||||||
|
|
||||||
StringBuilder buf = new StringBuilder(4*1024);
|
StringBuilder buf = new StringBuilder(4*1024);
|
||||||
buf.append("<h3>").append(_("Router Transport Addresses")).append("</h3><pre>\n");
|
buf.append("<h3>").append(_("Router Transport Addresses")).append("</h3><pre>\n");
|
||||||
for (int i = 0; i < _transports.size(); i++) {
|
for (int i = 0; i < _transports.size(); i++) {
|
||||||
@ -517,6 +522,41 @@ public class TransportManager implements TransportEventListener {
|
|||||||
out.flush();
|
out.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private final String getTransportsLegend() {
|
||||||
|
StringBuilder buf = new StringBuilder(1024);
|
||||||
|
buf.append("<h3>").append(_("Definitions")).append("</h3><div class=\"configure\">" +
|
||||||
|
"<p><b id=\"def.peer\">").append(_("Peer")).append("</b>: ").append(_("The remote peer, identified by router hash")).append("<br>\n" +
|
||||||
|
"<b id=\"def.dir\">").append(_("Dir")).append("</b>: " +
|
||||||
|
"<img src=\"/themes/console/images/inbound.png\"> ").append(_("Inbound connection")).append("<br>\n" +
|
||||||
|
" " +
|
||||||
|
"<img src=\"/themes/console/images/outbound.png\"> ").append(_("Outbound connection")).append("<br>\n" +
|
||||||
|
" " +
|
||||||
|
"<img src=\"/themes/console/images/inbound.png\" alt=\"V\" height=\"8\" width=\"12\"> ").append(_("They offered to introduce us (help other peers traverse our firewall)")).append("<br>\n" +
|
||||||
|
" " +
|
||||||
|
"<img src=\"/themes/console/images/outbound.png\" alt=\"^\" height=\"8\" width=\"12\"> ").append(_("We offered to introduce them (help other peers traverse their firewall)")).append("<br>\n" +
|
||||||
|
"<b id=\"def.idle\">").append(_("Idle")).append("</b>: ").append(_("How long since a packet has been received / sent")).append("<br>\n" +
|
||||||
|
"<b id=\"def.rate\">").append(_("In/Out")).append("</b>: ").append(_("The smoothed inbound / outbound transfer rate (KBytes per second)")).append("<br>\n" +
|
||||||
|
"<b id=\"def.up\">").append(_("Up")).append("</b>: ").append(_("How long ago this connection was established")).append("<br>\n" +
|
||||||
|
"<b id=\"def.skew\">").append(_("Skew")).append("</b>: ").append(_("The difference between the peer's clock and your own")).append("<br>\n" +
|
||||||
|
"<b id=\"def.cwnd\">CWND</b>: ").append(_("The congestion window, which is how many bytes can be sent without an acknowledgement")).append(" / <br>\n" +
|
||||||
|
" ").append(_("The number of sent messages awaiting acknowledgement")).append(" /<br>\n" +
|
||||||
|
" ").append(_("The maximum number of concurrent messages to send")).append(" /<br>\n"+
|
||||||
|
" ").append(_("The number of pending sends which exceed congestion window")).append("<br>\n" +
|
||||||
|
"<b id=\"def.ssthresh\">SST</b>: ").append(_("The slow start threshold")).append("<br>\n" +
|
||||||
|
"<b id=\"def.rtt\">RTT</b>: ").append(_("The round trip time in milliseconds")).append("<br>\n" +
|
||||||
|
"<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The standard deviation of the round trip time in milliseconds")).append("<br>\n" +
|
||||||
|
"<b id=\"def.rto\">RTO</b>: ").append(_("The retransmit timeout in milliseconds")).append("<br>\n" +
|
||||||
|
"<b id=\"def.mtu\">MTU</b>: ").append(_("Current maximum send packet size / estimated maximum receive packet size (bytes)")).append("<br>\n" +
|
||||||
|
"<b id=\"def.send\">").append(_("TX")).append("</b>: ").append(_("The total number of packets sent to the peer")).append("<br>\n" +
|
||||||
|
"<b id=\"def.recv\">").append(_("RX")).append("</b>: ").append(_("The total number of packets received from the peer")).append("<br>\n" +
|
||||||
|
"<b id=\"def.resent\">").append(_("Dup TX")).append("</b>: ").append(_("The total number of packets retransmitted to the peer")).append("<br>\n" +
|
||||||
|
"<b id=\"def.dupRecv\">").append(_("Dup RX")).append("</b>: ").append(_("The total number of duplicate packets received from the peer")).append("</p>" +
|
||||||
|
"</div>\n");
|
||||||
|
return buf.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mark a string for extraction by xgettext and translation.
|
* Mark a string for extraction by xgettext and translation.
|
||||||
* Use this only in static initializers.
|
* Use this only in static initializers.
|
||||||
|
@ -707,7 +707,7 @@ public class NTCPTransport extends TransportImpl {
|
|||||||
long totalRecv = 0;
|
long totalRecv = 0;
|
||||||
|
|
||||||
StringBuilder buf = new StringBuilder(512);
|
StringBuilder buf = new StringBuilder(512);
|
||||||
buf.append("<div class=\"wideload\"><h3 id=\"ntcpcon\">").append(_("NTCP connections")).append(": ").append(peers.size());
|
buf.append("<h3 id=\"ntcpcon\">").append(_("NTCP connections")).append(": ").append(peers.size());
|
||||||
buf.append(". ").append(_("Limit")).append(": ").append(getMaxConnections());
|
buf.append(". ").append(_("Limit")).append(": ").append(getMaxConnections());
|
||||||
buf.append(". ").append(_("Timeout")).append(": ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
|
buf.append(". ").append(_("Timeout")).append(": ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));
|
||||||
buf.append(".</h3>\n" +
|
buf.append(".</h3>\n" +
|
||||||
|
@ -2116,7 +2116,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
buf.append(sendTotal).append("</b></td> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n" +
|
buf.append(sendTotal).append("</b></td> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n" +
|
||||||
"<td align=\"center\"><b>").append(resentTotal);
|
"<td align=\"center\"><b>").append(resentTotal);
|
||||||
buf.append("</b></td><td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n" +
|
buf.append("</b></td><td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n" +
|
||||||
"</tr></table></div>\n");
|
"</tr></table>\n");
|
||||||
|
|
||||||
/*****
|
/*****
|
||||||
long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
|
long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
|
||||||
@ -2132,7 +2132,6 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
|
|
||||||
out.write(buf.toString());
|
out.write(buf.toString());
|
||||||
buf.setLength(0);
|
buf.setLength(0);
|
||||||
out.write(getKey());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DecimalFormat _fmt = new DecimalFormat("#,##0.00");
|
private static final DecimalFormat _fmt = new DecimalFormat("#,##0.00");
|
||||||
@ -2148,42 +2147,6 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Todo: Move since some of these apply to NTCP also, and the whole thing
|
|
||||||
* is hidden if i2np.udp.enable=false
|
|
||||||
*/
|
|
||||||
private final String getKey() {
|
|
||||||
StringBuilder buf = new StringBuilder(1024);
|
|
||||||
buf.append("<h3>").append(_("Definitions")).append("</h3><div class=\"configure\">" +
|
|
||||||
"<p><b id=\"def.peer\">").append(_("Peer")).append("</b>: ").append(_("The remote peer, identified by router hash")).append("<br>\n" +
|
|
||||||
"<b id=\"def.dir\">").append(_("Dir")).append("</b>: " +
|
|
||||||
"<img src=\"/themes/console/images/inbound.png\"> ").append(_("Inbound connection")).append("<br>\n" +
|
|
||||||
" " +
|
|
||||||
"<img src=\"/themes/console/images/outbound.png\"> ").append(_("Outbound connection")).append("<br>\n" +
|
|
||||||
" " +
|
|
||||||
"<img src=\"/themes/console/images/inbound.png\" alt=\"V\" height=\"8\" width=\"12\"> ").append(_("They offered to introduce us (help other peers traverse our firewall)")).append("<br>\n" +
|
|
||||||
" " +
|
|
||||||
"<img src=\"/themes/console/images/outbound.png\" alt=\"^\" height=\"8\" width=\"12\"> ").append(_("We offered to introduce them (help other peers traverse their firewall)")).append("<br>\n" +
|
|
||||||
"<b id=\"def.idle\">").append(_("Idle")).append("</b>: ").append(_("How long since a packet has been received / sent")).append("<br>\n" +
|
|
||||||
"<b id=\"def.rate\">").append(_("In/Out")).append("</b>: ").append(_("The smoothed inbound / outbound transfer rate (KBytes per second)")).append("<br>\n" +
|
|
||||||
"<b id=\"def.up\">").append(_("Up")).append("</b>: ").append(_("How long ago this connection was established")).append("<br>\n" +
|
|
||||||
"<b id=\"def.skew\">").append(_("Skew")).append("</b>: ").append(_("The difference between the peer's clock and your own")).append("<br>\n" +
|
|
||||||
"<b id=\"def.cwnd\">CWND</b>: ").append(_("The congestion window, which is how many bytes can be sent without an acknowledgement")).append(" / <br>\n" +
|
|
||||||
" ").append(_("The number of sent messages awaiting acknowledgement")).append(" /<br>\n" +
|
|
||||||
" ").append(_("The maximum number of concurrent messages to send")).append(" /<br>\n"+
|
|
||||||
" ").append(_("The number of pending sends which exceed congestion window")).append("<br>\n" +
|
|
||||||
"<b id=\"def.ssthresh\">SST</b>: ").append(_("The slow start threshold")).append("<br>\n" +
|
|
||||||
"<b id=\"def.rtt\">RTT</b>: ").append(_("The round trip time in milliseconds")).append("<br>\n" +
|
|
||||||
"<b id=\"def.dev\">").append(_("Dev")).append("</b>: ").append(_("The standard deviation of the round trip time in milliseconds")).append("<br>\n" +
|
|
||||||
"<b id=\"def.rto\">RTO</b>: ").append(_("The retransmit timeout in milliseconds")).append("<br>\n" +
|
|
||||||
"<b id=\"def.mtu\">MTU</b>: ").append(_("Current maximum send packet size / estimated maximum receive packet size (bytes)")).append("<br>\n" +
|
|
||||||
"<b id=\"def.send\">").append(_("TX")).append("</b>: ").append(_("The total number of packets sent to the peer")).append("<br>\n" +
|
|
||||||
"<b id=\"def.recv\">").append(_("RX")).append("</b>: ").append(_("The total number of packets received from the peer")).append("<br>\n" +
|
|
||||||
"<b id=\"def.resent\">").append(_("Dup TX")).append("</b>: ").append(_("The total number of packets retransmitted to the peer")).append("<br>\n" +
|
|
||||||
"<b id=\"def.dupRecv\">").append(_("Dup RX")).append("</b>: ").append(_("The total number of duplicate packets received from the peer")).append("</p>" +
|
|
||||||
"</div>\n");
|
|
||||||
return buf.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user