Changeset 4de0b73
- Timestamp:
- Jul 30, 2009 11:10:48 PM (12 years ago)
- Branches:
- master
- Children:
- 2f4c428
- Parents:
- 6e7ad3e
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
r6e7ad3e r4de0b73 712 712 out.write("Data directory: <input type=\"text\" size=\"40\" name=\"dataDir\" value=\"" + dataDir + "\" "); 713 713 out.write("title=\"Directory to store torrents and data\" disabled=\"true\" /> <i>(Edit i2psnark.config and restart to change)</i><br />\n"); 714 out.write("Auto start: <input type=\"checkbox\" name=\"autoStart\" value=\"true\" "714 out.write("Auto start: <input type=\"checkbox\" class=\"optbox\" name=\"autoStart\" value=\"true\" " 715 715 + (autoStart ? "checked " : "") 716 716 + "title=\"If true, automatically start torrents that are added\" />"); … … 739 739 + _manager.util().getMaxUpBW() + "\" size=\"3\" maxlength=\"3\" /> KBps <i>(Half <a href=\"/config.jsp\" target=\"blank\">available bandwidth</a> recommended.)</i><br />\n"); 740 740 741 out.write("Use open trackers also: <input type=\"checkbox\" name=\"useOpenTrackers\" value=\"true\" "741 out.write("Use open trackers also: <input type=\"checkbox\" class=\"optbox\" name=\"useOpenTrackers\" value=\"true\" " 742 742 + (useOpenTrackers ? "checked " : "") 743 743 + "title=\"If true, uses open trackers in addition\" /> "); -
apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
r6e7ad3e r4de0b73 15 15 public String getForm1() { 16 16 StringBuilder buf = new StringBuilder(1024); 17 buf.append("<table border=\"1\">\n");17 buf.append("<table>\n"); 18 18 buf.append("<tr><th>Client</th><th>Run at Startup?</th><th>Start Now</th><th>Class and arguments</th></tr>\n"); 19 19 … … 31 31 public String getForm2() { 32 32 StringBuilder buf = new StringBuilder(1024); 33 buf.append("<table border=\"1\">\n");33 buf.append("<table>\n"); 34 34 buf.append("<tr><th>WebApp</th><th>Run at Startup?</th><th>Start Now</th><th>Description</th></tr>\n"); 35 35 Properties props = RouterConsoleRunner.webAppProperties(); … … 57 57 buf.append(name); 58 58 } 59 buf.append("</td><td align=\"center\"><input type=\"checkbox\" name=\"").append(index).append(".enabled\" value=\"true\" ");59 buf.append("</td><td align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"").append(index).append(".enabled\" value=\"true\" "); 60 60 if (enabled) { 61 61 buf.append("checked=\"true\" "); -
apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java
r6e7ad3e r4de0b73 10 10 String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME); 11 11 for (String theme : themes) { 12 buf.append("<input type=\"radio\" name=\"theme\" ");12 buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" "); 13 13 if (theme.equals(current)) 14 14 buf.append("checked=\"true\" "); -
apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java
r6e7ad3e r4de0b73 43 43 String proxy = _context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY); 44 44 if (Boolean.valueOf(proxy).booleanValue()) 45 return "<input type=\"checkbox\" value=\"true\" name=\"updateThroughProxy\" checked=\"true\" >";45 return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" checked=\"true\" >"; 46 46 else 47 47 48 return "<input type=\"checkbox\" value=\"true\" name=\"updateThroughProxy\" >";48 return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" >"; 49 49 } 50 50 -
apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java
r6e7ad3e r4de0b73 110 110 _out.write("<form action=\"graphs.jsp\" method=\"GET\">"); 111 111 _out.write("Periods: <input size=\"3\" type=\"text\" name=\"periodCount\" value=\"" + _periodCount + "\" /><br />\n"); 112 _out.write("Plot averages: <input type=\"radio\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + " /> ");113 _out.write("or plot events: <input type=\"radio\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br />\n");112 _out.write("Plot averages: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"false\" " + (_showEvents ? "" : "checked=\"true\" ") + " /> "); 113 _out.write("or plot events: <input type=\"radio\" class=\"optbox\" name=\"showEvents\" value=\"true\" "+ (_showEvents ? "checked=\"true\" " : "") + " /><br />\n"); 114 114 _out.write("Image sizes: width: <input size=\"4\" type=\"text\" name=\"width\" value=\"" + _width 115 115 + "\" /> pixels, height: <input size=\"4\" type=\"text\" name=\"height\" value=\"" + _height -
apps/routerconsole/jsp/config.jsp
r6e7ad3e r4de0b73 60 60 } else { 61 61 out.print("You have configured I2P to share<b> " + share + "KBps</b>. "); 62 out.print("The higher the share bandwidth the more you improve your anonymity and help the network.< br />");62 out.print("The higher the share bandwidth the more you improve your anonymity and help the network.<hr />"); 63 63 } 64 64 %> … … 68 68 <!-- 69 69 <b>Enable load testing: </b> 70 <input type="checkbox" name="enableloadtesting" value="true" <jsp:getProperty name="nethelper" property="enableLoadTesting" /> />70 <input type="checkbox" class="optbox" name="enableloadtesting" value="true" <jsp:getProperty name="nethelper" property="enableLoadTesting" /> /> 71 71 <p>If enabled, your router will periodically anonymously probe some of your peers 72 72 to see what sort of throughput they can handle. This improves your router's ability … … 81 81 </p><p> 82 82 <b>UPnP Configuration:</b><br /> 83 <input type="checkbox" name="upnp" value="true" <jsp:getProperty name="nethelper" property="upnpChecked" /> />83 <input type="checkbox" class="optbox" name="upnp" value="true" <jsp:getProperty name="nethelper" property="upnpChecked" /> /> 84 84 Enable UPnP to open firewall ports - <a href="peers.jsp#upnp">UPnP status</a> 85 85 </p><p> 86 86 <b>IP Configuration:</b><br /> 87 87 Externally reachable hostname or IP address:<br /> 88 <input type="radio" name="udpAutoIP" value="local,upnp,ssu" <%=nethelper.getUdpAutoIPChecked(3) %> />88 <input type="radio" class="optbox" name="udpAutoIP" value="local,upnp,ssu" <%=nethelper.getUdpAutoIPChecked(3) %> /> 89 89 Use all auto-detect methods<br /> 90 <input type="radio" name="udpAutoIP" value="local,ssu" <%=nethelper.getUdpAutoIPChecked(4) %> />90 <input type="radio" class="optbox" name="udpAutoIP" value="local,ssu" <%=nethelper.getUdpAutoIPChecked(4) %> /> 91 91 Disable UPnP IP address detection<br /> 92 <input type="radio" name="udpAutoIP" value="upnp,ssu" <%=nethelper.getUdpAutoIPChecked(5) %> />92 <input type="radio" class="optbox" name="udpAutoIP" value="upnp,ssu" <%=nethelper.getUdpAutoIPChecked(5) %> /> 93 93 Ignore local interface IP address<br /> 94 <input type="radio" name="udpAutoIP" value="ssu" <%=nethelper.getUdpAutoIPChecked(0) %> />94 <input type="radio" class="optbox" name="udpAutoIP" value="ssu" <%=nethelper.getUdpAutoIPChecked(0) %> /> 95 95 Use SSU IP address detection only<br /> 96 <input type="radio" name="udpAutoIP" value="fixed" <%=nethelper.getUdpAutoIPChecked(1) %> />96 <input type="radio" class="optbox" name="udpAutoIP" value="fixed" <%=nethelper.getUdpAutoIPChecked(1) %> /> 97 97 Specify hostname or IP: 98 98 <input name ="udpHost1" type="text" size="16" value="<jsp:getProperty name="nethelper" property="udphostname" />" /> … … 111 111 %> 112 112 <br /> 113 <input type="radio" name="udpAutoIP" value="hidden" <%=nethelper.getUdpAutoIPChecked(2) %> />113 <input type="radio" class="optbox" name="udpAutoIP" value="hidden" <%=nethelper.getUdpAutoIPChecked(2) %> /> 114 114 Hidden mode - do not publish IP <i>(prevents participating traffic)</i><br /> 115 115 </p><p> … … 118 118 <input name ="udpPort" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="configuredUdpPort" />" /><br /> 119 119 <!-- let's keep this simple... 120 <input type="checkbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> />120 <input type="checkbox" class="optbox" name="requireIntroductions" value="true" <jsp:getProperty name="nethelper" property="requireIntroductionsChecked" /> /> 121 121 Require SSU introductions 122 122 <i>(Enable if you cannot open your firewall)</i> … … 127 127 <b>TCP Configuration:</b><br /> 128 128 Externally reachable hostname or IP address:<br /> 129 <input type="radio" name="ntcpAutoIP" value="true" <%=nethelper.getTcpAutoIPChecked(2) %> />129 <input type="radio" class="optbox" name="ntcpAutoIP" value="true" <%=nethelper.getTcpAutoIPChecked(2) %> /> 130 130 Use auto-detected IP address 131 131 <i>(currently <jsp:getProperty name="nethelper" property="udpIP" />)</i> 132 132 if we are not firewalled<br /> 133 <input type="radio" name="ntcpAutoIP" value="always" <%=nethelper.getTcpAutoIPChecked(3) %> />133 <input type="radio" class="optbox" name="ntcpAutoIP" value="always" <%=nethelper.getTcpAutoIPChecked(3) %> /> 134 134 Always use auto-detected IP address (Not firewalled)<br /> 135 <input type="radio" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(1) %> />135 <input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(1) %> /> 136 136 Specify hostname or IP: 137 137 <input name ="ntcphost" type="text" size="16" value="<jsp:getProperty name="nethelper" property="ntcphostname" />" /><br /> 138 <input type="radio" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(0) %> />138 <input type="radio" class="optbox" name="ntcpAutoIP" value="false" <%=nethelper.getTcpAutoIPChecked(0) %> /> 139 139 Disable inbound (Firewalled)<br /> 140 <input type="radio" name="ntcpAutoIP" value="disabled" <%=nethelper.getTcpAutoIPChecked(4) %> />140 <input type="radio" class="optbox" name="ntcpAutoIP" value="disabled" <%=nethelper.getTcpAutoIPChecked(4) %> /> 141 141 Completely disable <i>(select only if behind a firewall that throttles or blocks outbound TCP)</i><br /> 142 142 </p><p> 143 143 Externally reachable TCP port:<br /> 144 <input type="radio" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> />144 <input type="radio" class="optbox" name="ntcpAutoPort" value="2" <%=nethelper.getTcpAutoPortChecked(2) %> /> 145 145 Use the same port configured for UDP 146 146 <i>(currently <jsp:getProperty name="nethelper" property="udpPort" />)</i><br /> 147 <input type="radio" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> />147 <input type="radio" class="optbox" name="ntcpAutoPort" value="1" <%=nethelper.getTcpAutoPortChecked(1) %> /> 148 148 Specify Port: 149 149 <input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br /> 150 150 </p><p><b>Note: Changing these settings will restart your router.</b> 151 </p> 151 </p><hr> 152 152 <input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" /> 153 153 </div> … … 249 249 <!-- 250 250 <b>Dynamic Router Keys: </b> 251 <input type="checkbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br />251 <input type="checkbox" class="optbox" name="dynamicKeys" value="true" <jsp:getProperty name="nethelper" property="dynamicKeysChecked" /> /><br /> 252 252 <p> 253 253 This setting causes your router identity to be regenerated every time your IP address -
apps/routerconsole/jsp/configstats.jsp
r6e7ad3e r4de0b73 74 74 <h3>Configure I2P Stat Collection</h3> 75 75 Enable full stats? 76 <input type="checkbox" name="isFull" value="true" <%76 <input type="checkbox" class="optbox" name="isFull" value="true" <% 77 77 if (statshelper.getIsFull()) { %>checked="true" <% } %>/> 78 78 (change requires restart to take effect)<br /> … … 82 82 <% while (statshelper.hasMoreStats()) { 83 83 while (statshelper.groupRequired()) { %> 84 <tr><td valign="top"align="left" colspan="3">84 <tr><td align="left" colspan="3"> 85 85 <b><%=statshelper.getCurrentGroupName()%></b> 86 86 (<a href="javascript: void(null);" onclick="toggleAll('<%=statshelper.getCurrentGroupName()%>')">toggle all</a>) 87 </td></tr><tr><td> Log</td><td>Graph</td><td></td></tr><%87 </td></tr><tr><td><b>Log</b></td><td><b>Graph</b></td><td></td></tr><% 88 88 } // end iterating over required groups for the current stat %> 89 <tr><td valign="top"align="left">89 <tr><td align="left"> 90 90 <a name="<%=statshelper.getCurrentStatName()%>"></a> 91 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <%91 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <% 92 92 if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td> 93 <td valign="top"align="left">93 <td align="left"> 94 94 <% if (statshelper.getCurrentCanBeGraphed()) { %> 95 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <%95 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <% 96 96 if (statshelper.getCurrentIsGraphed()) { %>checked="true" <% } %>/><% } %></td> 97 <td valign="top"align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br />97 <td align="left"><b><%=statshelper.getCurrentStatName()%>:</b><br /> 98 98 <%=statshelper.getCurrentStatDescription()%></td></tr><% 99 99 } // end iterating over all stats %> 100 100 <tr><td colspan="3"><hr /></td></tr> 101 <tr><td><input type="checkbox" name="explicitFilter" /></td>101 <tr><td><input type="checkbox" class="optbox" name="explicitFilter" /></td> 102 102 <td colspan="2">Advanced filter: 103 103 <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr> -
apps/susimail/src/src/i2p/susi/webmail/WebMail.java
r6e7ad3e r4de0b73 1546 1546 "<tr><td align=\"right\">Bcc:</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_BCC + "\" value=\"" + bcc + "\"></td></tr>\n" + 1547 1547 "<tr><td align=\"right\">Subject:</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_SUBJECT + "\" value=\"" + subject + "\"></td></tr>\n" + 1548 "<tr><td> </td><td align=\"left\"><input type=\"checkbox\" name=\"" + NEW_BCC_TO_SELF + "\" value=\"1\"" + ( bccToSelf.compareToIgnoreCase( "false" ) != 0 ? "checked" : "" )+ ">Bcc to self</td></tr>\n" +1548 "<tr><td> </td><td align=\"left\"><input type=\"checkbox\" class=\"optbox\" name=\"" + NEW_BCC_TO_SELF + "\" value=\"1\"" + ( bccToSelf.compareToIgnoreCase( "false" ) != 0 ? "checked" : "" )+ ">Bcc to self</td></tr>\n" + 1549 1549 "<tr><td colspan=\"2\" align=\"center\"><textarea cols=\"" + Config.getProperty( CONFIG_COMPOSER_COLS, 80 )+ "\" rows=\"" + Config.getProperty( CONFIG_COMPOSER_ROWS, 10 )+ "\" name=\"" + NEW_TEXT + "\">" + text + "</textarea>" + 1550 1550 "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" + … … 1559 1559 } 1560 1560 Attachment attachment = (Attachment)it.next(); 1561 out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\"> " + attachment.getFileName() + "</td></tr>");1561 out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\"> " + attachment.getFileName() + "</td></tr>"); 1562 1562 } 1563 1563 } … … 1633 1633 ", invert=" + sessionObject.invert + 1634 1634 ", clear=" + sessionObject.clear ); 1635 out.println( "<tr class=\"list" + bg + "\"><td><input type=\"checkbox\" name=\"check" + i + "\" value=\"1\"" +1635 out.println( "<tr class=\"list" + bg + "\"><td><input type=\"checkbox\" class=\"optbox\" name=\"check" + i + "\" value=\"1\"" + 1636 1636 ( idChecked ? "checked" : "" ) + ">" + ( RELEASE ? "" : "" + i ) + "</td><td>" + link + mail.shortSender + "</a></td><td> </td><td>" + link + mail.shortSubject + "</a></td><td> </td><td>" + mail.formattedDate + "</a></td><td> </td><td>" + mail.size + " Bytes</a></td></tr>" ); 1637 1637 bg = 1 - bg; -
core/java/src/net/i2p/crypto/TransientSessionKeyManager.java
r6e7ad3e r4de0b73 503 503 StringBuilder buf = new StringBuilder(1024); 504 504 buf.append("<h2>Inbound sessions</h2>"); 505 buf.append("<table border=\"1\">");505 buf.append("<table>"); 506 506 Set<TagSet> inbound = getInboundTagSets(); 507 507 Map<SessionKey, Set<TagSet>> inboundSets = new HashMap(inbound.size()); … … 529 529 buf.append("<h2><b>Outbound sessions</b></h2>"); 530 530 531 buf.append("<table border=\"1\">");531 buf.append("<table>"); 532 532 Set<OutboundSession> outbound = getOutboundSessions(); 533 533 for (Iterator<OutboundSession> iter = outbound.iterator(); iter.hasNext();) { -
installer/resources/themes/console/light/console.css
r6e7ad3e r4de0b73 643 643 font-weight: bold; 644 644 } 645 646 .optbox { 647 min-width: 16px !important; 648 max-width: 16px !important; 649 width: 16px !important; 650 min-height: 16px; 651 max-height: 16px; 652 height: 16px; 653 opacity: 1.0; 654 border: 0; 655 } 656 657 .optbox:hover { 658 min-width: 16px !important; 659 max-width: 16px !important; 660 width: 16px !important; 661 min-height: 16px; 662 max-height: 16px; 663 height: 16px; 664 opacity: 1.0; 665 border: 0; 666 } -
router/java/src/net/i2p/router/JobQueue.java
r6e7ad3e r4de0b73 668 668 /** render the HTML for the job stats */ 669 669 private void getJobStats(StringBuilder buf) { 670 buf.append("<table border=\"1\">\n");670 buf.append("<table>\n"); 671 671 buf.append("<tr><th>Job</th><th>Runs</th>"); 672 672 buf.append("<th>Time</th><th><i>Avg</i></th><th><i>Max</i></th><th><i>Min</i></th>"); -
router/java/src/net/i2p/router/PersistentKeyRing.java
r6e7ad3e r4de0b73 68 68 public void renderStatusHTML(Writer out) throws IOException { 69 69 StringBuilder buf = new StringBuilder(1024); 70 buf.append("\n<table border=\"1\"><tr><th align=\"left\">Destination Hash<th align=\"left\">Name or Dest.<th align=\"left\">Session Key</tr>");70 buf.append("\n<table><tr><th align=\"left\">Destination Hash<th align=\"left\">Name or Dest.<th align=\"left\">Session Key</tr>"); 71 71 for (Entry<Hash, SessionKey> e : entrySet()) { 72 72 buf.append("\n<tr><td>"); -
router/java/src/net/i2p/router/Router.java
r6e7ad3e r4de0b73 760 760 buf.append("\n<hr /><a name=\"logs\"> </a>\n"); 761 761 List msgs = _context.logManager().getBuffer().getMostRecentMessages(); 762 buf.append("\n<h2>Most recent console messages:</h2><table border=\"1\">\n");762 buf.append("\n<h2>Most recent console messages:</h2><table>\n"); 763 763 for (Iterator iter = msgs.iterator(); iter.hasNext(); ) { 764 764 String msg = (String)iter.next(); -
router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java
r6e7ad3e r4de0b73 620 620 long now = now(); 621 621 StringBuilder buf = new StringBuilder(4096); 622 buf.append("< p><b id=\"bwlim\">Limiter Status:</b><br />").append(getStatus().toString()).append("</p>\n");623 buf.append("< p><b>Pending bandwidth requests:</b><ul>");622 buf.append("<h3><b id=\"bwlim\">Limiter Status:</b></h3>").append(getStatus().toString()).append("\n"); 623 buf.append("<h3>Pending bandwidth requests:</h3><ul>"); 624 624 buf.append("<li>Inbound requests: <ol>"); 625 625 synchronized (_pendingInboundRequests) { … … 644 644 } 645 645 } 646 buf.append("</ol></li></ul></p> \n");646 buf.append("</ol></li></ul></p><hr>\n"); 647 647 out.write(buf.toString()); 648 648 out.flush(); -
router/java/src/net/i2p/router/transport/TransportManager.java
r6e7ad3e r4de0b73 493 493 } 494 494 StringBuilder buf = new StringBuilder(4*1024); 495 buf.append("< p><b>Router Transport Addresses:</b><br /><pre>\n");495 buf.append("<h3>Router Transport Addresses:</h3><pre>\n"); 496 496 for (int i = 0; i < _transports.size(); i++) { 497 497 Transport t = (Transport)_transports.get(i); -
router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
r6e7ad3e r4de0b73 640 640 641 641 StringBuilder buf = new StringBuilder(512); 642 buf.append("<p><b id=\"ntcpcon\"> NTCP connections: ").append(peers.size());643 buf.append(" limit: ").append(getMaxConnections());644 buf.append(" timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout()));645 buf.append(" </b><br />\n");642 buf.append("<p><b id=\"ntcpcon\"><h3>NTCP connections: ").append(peers.size()); 643 buf.append(". Limit: ").append(getMaxConnections()); 644 buf.append(". Timeout: ").append(DataHelper.formatDuration(_pumper.getIdleTimeout())); 645 buf.append(".</b></h3>\n"); 646 646 buf.append("<table>\n"); 647 647 buf.append("<tr><th><a href=\"#def.peer\">Peer</a></th>"); … … 651 651 buf.append("<th align=\"right\"><a href=\"#def.up\">Up</a></th>"); 652 652 buf.append("<th align=\"right\"><a href=\"#def.skew\">Skew</a></th>"); 653 buf.append("<th align=\"right\"><a href=\"#def.send\"> Send</a></th>");654 buf.append("<th align=\"right\"><a href=\"#def.recv\">R ecv</a></th>");653 buf.append("<th align=\"right\"><a href=\"#def.send\">TX</a></th>"); 654 buf.append("<th align=\"right\"><a href=\"#def.recv\">RX</a></th>"); 655 655 buf.append("<th>Out queue</th>"); 656 656 buf.append("<th>Backlogged?</th>"); … … 666 666 //if (ip != null) 667 667 // buf.append(' ').append(_context.blocklist().toStr(ip)); 668 buf.append("</td><td align=\"center\"> <code>");668 buf.append("</td><td align=\"center\">"); 669 669 if (con.isInbound()) 670 buf.append(" in");670 buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/>"); 671 671 else 672 buf.append(" out");673 buf.append("</ code></td><td align=\"right\"><code>");672 buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/>"); 673 buf.append("</td><td align=\"right\">"); 674 674 buf.append(con.getTimeSinceReceive()/1000); 675 675 buf.append("s/").append(con.getTimeSinceSend()/1000); 676 buf.append("s</ code></td><td align=\"right\"><code>");676 buf.append("s</td><td align=\"right\">"); 677 677 if (con.getTimeSinceReceive() < 10*1000) { 678 678 buf.append(formatRate(con.getRecvRate()/1024)); … … 688 688 buf.append(formatRate(0)); 689 689 } 690 buf.append("K Bps");691 buf.append("</ code></td><td align=\"right\"><code>").append(DataHelper.formatDuration(con.getUptime()));690 buf.append("K/s"); 691 buf.append("</td><td align=\"right\">").append(DataHelper.formatDuration(con.getUptime())); 692 692 totalUptime += con.getUptime(); 693 693 offsetTotal = offsetTotal + con.getClockSkew(); 694 buf.append("</ code></td><td align=\"right\"><code>").append(con.getClockSkew());695 buf.append("s</ code></td><td align=\"right\"><code>").append(con.getMessagesSent());694 buf.append("</td><td align=\"right\">").append(con.getClockSkew()); 695 buf.append("s</td><td align=\"right\">").append(con.getMessagesSent()); 696 696 totalSend += con.getMessagesSent(); 697 buf.append("</ code></td><td align=\"right\"><code>").append(con.getMessagesReceived());697 buf.append("</td><td align=\"right\">").append(con.getMessagesReceived()); 698 698 totalRecv += con.getMessagesReceived(); 699 699 long outQueue = con.getOutboundQueueSize(); 700 700 if (outQueue <= 0) { 701 buf.append("</ code></td><td align=\"right\"><code>No messages");701 buf.append("</td><td align=\"right\">No messages"); 702 702 } else { 703 buf.append("</ code></td><td align=\"right\"><code>").append(outQueue).append(" message");703 buf.append("</td><td align=\"right\">").append(outQueue).append(" message"); 704 704 if (outQueue > 1) 705 705 buf.append("s"); 706 706 } 707 buf.append("</ code></td><td align=\"center\"><code>").append(con.getConsecutiveBacklog() > 0 ? "true" : "false");707 buf.append("</td><td align=\"center\">").append(con.getConsecutiveBacklog() > 0 ? "true" : "false"); 708 708 long readTime = con.getReadTime(); 709 709 if (readTime <= 0) { 710 buf.append("</ code></td><td align=\"center\"><code>No");710 buf.append("</td><td align=\"center\">No"); 711 711 } else { 712 buf.append("</ code></td><td><code>For ").append(DataHelper.formatDuration(readTime));713 } 714 buf.append("</ code></td></tr>\n");712 buf.append("</td><td>For ").append(DataHelper.formatDuration(readTime)); 713 } 714 buf.append("</td></tr>\n"); 715 715 out.write(buf.toString()); 716 716 buf.setLength(0); … … 719 719 if (peers.size() > 0) { 720 720 buf.append("<tr><td colspan=\"11\"><hr /></td></tr>\n"); 721 buf.append("<tr><td >").append(peers.size()).append(" peers</td><td> </td><td> ");722 buf.append("</td><td align=\"right\"> ").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("KBps");723 buf.append("</td><td align=\"right\"> ").append(DataHelper.formatDuration(totalUptime/peers.size()));724 buf.append("</ td><td align=\"right\">").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms");725 buf.append("</ td><td align=\"right\">").append(totalSend).append("</td><td align=\"right\">").append(totalRecv);726 buf.append("</ td><td> </td><td> </td><td> ");721 buf.append("<tr><td align=\"center\"><b>").append(peers.size()).append(" peers</b></td><td> </td><td> "); 722 buf.append("</td><td align=\"right\"><b>").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("K/s</b>"); 723 buf.append("</td><td align=\"right\"><b>").append(DataHelper.formatDuration(totalUptime/peers.size())); 724 buf.append("</b></td><td align=\"right\"><b>").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms"); 725 buf.append("</b></td><td align=\"right\"><b>").append(totalSend).append("</b></td><td align=\"right\"><b>").append(totalRecv); 726 buf.append("</b></td><td> </td><td> </td><td> "); 727 727 buf.append("</td></tr>\n"); 728 728 } -
router/java/src/net/i2p/router/transport/udp/UDPTransport.java
r6e7ad3e r4de0b73 1764 1764 1765 1765 StringBuilder buf = new StringBuilder(512); 1766 buf.append("<p><b id=\"udpcon\"> UDP connections: ").append(peers.size());1767 buf.append(" limit: ").append(getMaxConnections());1768 buf.append(" timeout: ").append(DataHelper.formatDuration(_expireTimeout));1769 buf.append(" </b><br />\n");1766 buf.append("<p><b id=\"udpcon\"><h3>UDP connections: ").append(peers.size()); 1767 buf.append(". Limit: ").append(getMaxConnections()); 1768 buf.append(". Timeout: ").append(DataHelper.formatDuration(_expireTimeout)); 1769 buf.append(".</b></h3>\n"); 1770 1770 buf.append("<table>\n"); 1771 buf.append("<tr><th ><a href=\"#def.peer\">Peer</a>");1771 buf.append("<tr><th class=\"smallhead\" nowrap><a href=\"#def.peer\">Peer</a>"); 1772 1772 if (sortFlags != FLAG_ALPHA) 1773 1773 buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</a> "); 1774 buf.append("</th><th ><a href=\"#def.dir\">Dir/Intro</a></th><th><a href=\"#def.idle\">Idle</a>");1774 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dir\">Dir/Intro</a></th><th class=\"smallhead\" nowrap><a href=\"#def.idle\">Idle</a><br>"); 1775 1775 appendSortLinks(buf, urlBase, sortFlags, "Sort by idle inbound", FLAG_IDLE_IN); 1776 1776 buf.append("/"); 1777 1777 appendSortLinks(buf, urlBase, sortFlags, "Sort by idle outbound", FLAG_IDLE_OUT); 1778 1778 buf.append("</th>"); 1779 buf.append("<th ><a href=\"#def.rate\">In/Out</a>");1779 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.rate\">In/Out</a><br>"); 1780 1780 appendSortLinks(buf, urlBase, sortFlags, "Sort by inbound rate", FLAG_RATE_IN); 1781 1781 buf.append("/"); 1782 1782 appendSortLinks(buf, urlBase, sortFlags, "Sort by outbound rate", FLAG_RATE_OUT); 1783 1783 buf.append("</th>\n"); 1784 buf.append("<th ><a href=\"#def.up\">Up</a>");1784 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.up\">Up</a><br>"); 1785 1785 appendSortLinks(buf, urlBase, sortFlags, "Sort by connection uptime", FLAG_UPTIME); 1786 buf.append("</th><th ><a href=\"#def.skew\">skew</a>");1786 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.skew\">Skew</a><br>"); 1787 1787 appendSortLinks(buf, urlBase, sortFlags, "Sort by clock skew", FLAG_SKEW); 1788 1788 buf.append("</th>\n"); 1789 buf.append("<th ><a href=\"#def.cwnd\">Cwnd</a>");1789 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.cwnd\">Cwnd</a><br>"); 1790 1790 appendSortLinks(buf, urlBase, sortFlags, "Sort by congestion window", FLAG_CWND); 1791 buf.append("</th><th ><a href=\"#def.ssthresh\">Ssthresh</a>");1791 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.ssthresh\">Sst</a><br>"); 1792 1792 appendSortLinks(buf, urlBase, sortFlags, "Sort by slow start threshold", FLAG_SSTHRESH); 1793 1793 buf.append("</th>\n"); 1794 buf.append("<th ><a href=\"#def.rtt\">Rtt</a>");1794 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.rtt\">Rtt</a><br>"); 1795 1795 appendSortLinks(buf, urlBase, sortFlags, "Sort by round trip time", FLAG_RTT); 1796 buf.append("</th><th ><a href=\"#def.dev\">Dev</a>");1796 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dev\">Dev</a><br>"); 1797 1797 appendSortLinks(buf, urlBase, sortFlags, "Sort by round trip time deviation", FLAG_DEV); 1798 buf.append("</th><th ><a href=\"#def.rto\">Rto</a>");1798 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.rto\">Rto</a><br>"); 1799 1799 appendSortLinks(buf, urlBase, sortFlags, "Sort by retransmission timeout", FLAG_RTO); 1800 1800 buf.append("</th>\n"); 1801 buf.append("<th ><a href=\"#def.mtu\">Mtu</a>");1801 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.mtu\">Mtu</a><br>"); 1802 1802 appendSortLinks(buf, urlBase, sortFlags, "Sort by maximum transmit unit", FLAG_MTU); 1803 buf.append("</th><th ><a href=\"#def.send\">Send</a>");1803 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.send\">TX</a><br>"); 1804 1804 appendSortLinks(buf, urlBase, sortFlags, "Sort by packets sent", FLAG_SEND); 1805 buf.append("</th><th ><a href=\"#def.recv\">Recv</a>");1805 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.recv\">RX</a><br>"); 1806 1806 appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received", FLAG_RECV); 1807 1807 buf.append("</th>\n"); 1808 buf.append("<th ><a href=\"#def.resent\">Resent</a>");1808 buf.append("<th class=\"smallhead\" nowrap><a href=\"#def.resent\">ReTX</a><br>"); 1809 1809 appendSortLinks(buf, urlBase, sortFlags, "Sort by packets retransmitted", FLAG_RESEND); 1810 buf.append("</th><th ><a href=\"#def.dupRecv\">DupRecv</a>");1810 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dupRecv\">DupRX</a><br>"); 1811 1811 appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received more than once", FLAG_DUP); 1812 1812 buf.append("</th>\n"); … … 1825 1825 //if (ip != null) 1826 1826 // buf.append(' ').append(_context.blocklist().toStr(ip)); 1827 buf.append("</td><td ><code>");1827 buf.append("</td><td nowrap>"); 1828 1828 if (peer.isInbound()) 1829 buf.append(" in");1829 buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/> "); 1830 1830 else 1831 buf.append(" out");1831 buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/> "); 1832 1832 if (peer.getWeRelayToThemAs() > 0) 1833 1833 buf.append("^"); … … 1840 1840 if (_activeThrottle.isChoked(peer.getRemotePeer())) { 1841 1841 if (!appended) buf.append("<br />"); 1842 buf.append(" [choked]");1842 buf.append(" <i>Choked</i>"); 1843 1843 appended = true; 1844 1844 } 1845 1845 if (peer.getConsecutiveFailedSends() > 0) { 1846 1846 if (!appended) buf.append("<br />"); 1847 buf.append(" [").append(peer.getConsecutiveFailedSends()).append(" failures]");1847 buf.append(" <i>").append(peer.getConsecutiveFailedSends()).append(" fail(s)</i>"); 1848 1848 appended = true; 1849 1849 } 1850 1850 if (_context.shitlist().isShitlisted(peer.getRemotePeer(), STYLE)) { 1851 1851 if (!appended) buf.append("<br />"); 1852 buf.append(" [shitlisted]");1852 buf.append(" <i>Shitlist</i>"); 1853 1853 appended = true; 1854 1854 } … … 1856 1856 //if (ip != null) 1857 1857 // buf.append(' ').append(_context.blocklist().toStr(ip)); 1858 buf.append("</ code></td>");1858 buf.append("</td>"); 1859 1859 1860 1860 long idleIn = (now-peer.getLastReceiveTime())/1000; … … 1863 1863 if (idleOut < 0) idleOut = 0; 1864 1864 1865 buf.append("<td align=\"right\" > <code>");1865 buf.append("<td align=\"right\" >"); 1866 1866 buf.append(idleIn); 1867 1867 buf.append("s/"); 1868 1868 buf.append(idleOut); 1869 buf.append("s</ code></td>");1869 buf.append("s</td>"); 1870 1870 1871 1871 int recvBps = (idleIn > 2 ? 0 : peer.getReceiveBps()); 1872 1872 int sendBps = (idleOut > 2 ? 0 : peer.getSendBps()); 1873 1873 1874 buf.append("<td align=\"right\" ><code>");1874 buf.append("<td align=\"right\" nowrap>"); 1875 1875 buf.append(formatKBps(recvBps)); 1876 1876 buf.append("/"); 1877 1877 buf.append(formatKBps(sendBps)); 1878 buf.append("K Bps ");1878 buf.append("K/s "); 1879 1879 //buf.append(formatKBps(peer.getReceiveACKBps())); 1880 //buf.append("K Bps/");1880 //buf.append("K/s/"); 1881 1881 //buf.append(formatKBps(peer.getSendACKBps())); 1882 //buf.append("K Bps ");1883 buf.append("</ code></td>");1882 //buf.append("K/s "); 1883 buf.append("</td>"); 1884 1884 1885 1885 long uptime = now - peer.getKeyEstablishedTime(); 1886 1886 1887 buf.append("<td align=\"right\" > <code>");1887 buf.append("<td align=\"right\" >"); 1888 1888 buf.append(DataHelper.formatDuration(uptime)); 1889 buf.append("</ code></td>");1889 buf.append("</td>"); 1890 1890 1891 buf.append("<td align=\"right\" > <code>");1891 buf.append("<td align=\"right\" >"); 1892 1892 buf.append(peer.getClockSkew()); 1893 buf.append("s</ code></td>");1893 buf.append("s</td>"); 1894 1894 offsetTotal = offsetTotal + peer.getClockSkew(); 1895 1895 1896 1896 long sendWindow = peer.getSendWindowBytes(); 1897 1897 1898 buf.append("<td align=\"right\" > <code>");1898 buf.append("<td align=\"right\" >"); 1899 1899 buf.append(sendWindow/1024); 1900 1900 buf.append("K"); … … 1902 1902 buf.append("/").append(peer.getConcurrentSendWindow()); 1903 1903 buf.append("/").append(peer.getConsecutiveSendRejections()); 1904 buf.append("</ code></td>");1905 1906 buf.append("<td align=\"right\" > <code>");1904 buf.append("</td>"); 1905 1906 buf.append("<td align=\"right\" >"); 1907 1907 buf.append(peer.getSlowStartThreshold()/1024); 1908 buf.append("K</ code></td>");1908 buf.append("K</td>"); 1909 1909 1910 1910 int rtt = peer.getRTT(); 1911 1911 int rto = peer.getRTO(); 1912 1912 1913 buf.append("<td align=\"right\" > <code>");1913 buf.append("<td align=\"right\" >"); 1914 1914 buf.append(rtt); 1915 buf.append("</ code></td>");1915 buf.append("</td>"); 1916 1916 1917 buf.append("<td align=\"right\" > <code>");1917 buf.append("<td align=\"right\" >"); 1918 1918 buf.append(peer.getRTTDeviation()); 1919 buf.append("</ code></td>");1920 1921 buf.append("<td align=\"right\" > <code>");1919 buf.append("</td>"); 1920 1921 buf.append("<td align=\"right\" >"); 1922 1922 buf.append(rto); 1923 buf.append("</ code></td>");1923 buf.append("</td>"); 1924 1924 1925 buf.append("<td align=\"right\" > <code>");1925 buf.append("<td align=\"right\" >"); 1926 1926 buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU()); 1927 1927 … … 1929 1929 //buf.append(peer.getMTUIncreases()).append('/'); 1930 1930 //buf.append(peer.getMTUDecreases()); 1931 buf.append("</ code></td>");1931 buf.append("</td>"); 1932 1932 1933 1933 long sent = peer.getPacketsTransmitted(); 1934 1934 long recv = peer.getPacketsReceived(); 1935 1935 1936 buf.append("<td align=\"right\" > <code>");1936 buf.append("<td align=\"right\" >"); 1937 1937 buf.append(sent); 1938 buf.append("</ code></td>");1938 buf.append("</td>"); 1939 1939 1940 buf.append("<td align=\"right\" > <code>");1940 buf.append("<td align=\"right\" >"); 1941 1941 buf.append(recv); 1942 buf.append("</ code></td>");1942 buf.append("</td>"); 1943 1943 1944 1944 //double sent = (double)peer.getPacketsPeriodTransmitted(); … … 1950 1950 long dupRecv = peer.getPacketsReceivedDuplicate(); 1951 1951 1952 buf.append("<td align=\"right\" > <code>");1952 buf.append("<td align=\"right\" >"); 1953 1953 //buf.append(formatPct(sendLostPct)); 1954 1954 buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent); 1955 1955 //buf.append(peer.getPacketRetransmissionRate()); 1956 buf.append("</ code></td>");1956 buf.append("</td>"); 1957 1957 1958 1958 double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived(); 1959 buf.append("<td align=\"right\" > <code>");1959 buf.append("<td align=\"right\" >"); 1960 1960 buf.append(dupRecv); //formatPct(recvDupPct)); 1961 buf.append("</ code></td>");1961 buf.append("</td>"); 1962 1962 1963 1963 buf.append("</tr>\n"); … … 1983 1983 buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n"); 1984 1984 buf.append(" <tr><td colspan=\"3\"><b>Total</b></td>"); 1985 buf.append(" <td align=\"right\" >");1985 buf.append(" <td align=\"right\" nowrap><b>"); 1986 1986 buf.append(formatKBps(bpsIn)).append("/").append(formatKBps(bpsOut)); 1987 buf.append("K Bps</td>");1988 buf.append(" <td align=\"right\"> ").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s");1989 buf.append("</ td><td align=\"right\">").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</td>\n");1990 buf.append(" <td align=\"right\"> ");1987 buf.append("K/s</b></td>"); 1988 buf.append(" <td align=\"right\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s"); 1989 buf.append("</b></td><td align=\"right\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</b></td>\n"); 1990 buf.append(" <td align=\"right\"><b>"); 1991 1991 buf.append(numPeers > 0 ? cwinTotal/(numPeers*1024) + "K" : "0K"); 1992 buf.append("</ td><td> </td>\n");1993 buf.append(" <td align=\"right\"> ");1992 buf.append("</b></td><td> </td>\n"); 1993 buf.append(" <td align=\"right\"><b>"); 1994 1994 buf.append(numPeers > 0 ? rttTotal/numPeers : 0); 1995 buf.append("</ td><td align=\"right\"> </td><td align=\"right\">");1995 buf.append("</b></td><td align=\"right\"> </td><td align=\"right\"><b>"); 1996 1996 buf.append(numPeers > 0 ? rtoTotal/numPeers : 0); 1997 buf.append("</ td>\n <td> </td><td align=\"right\">");1998 buf.append(sendTotal).append("</td>< td align=\"right\">").append(recvTotal).append("</td>\n");1999 buf.append(" <td align=\"right\"> ").append(resentTotal);2000 buf.append("</ td><td align=\"right\">").append(dupRecvTotal).append("</td>\n");1997 buf.append("</b></td>\n <td> </td><td align=\"right\"><b>"); 1998 buf.append(sendTotal).append("</td></b><td align=\"right\"><b>").append(recvTotal).append("</b></td>\n"); 1999 buf.append(" <td align=\"right\"><b>").append(resentTotal); 2000 buf.append("</b></td><td align=\"right\"><b>").append(dupRecvTotal).append("</b></td>\n"); 2001 2001 buf.append(" </tr></table></p><p>\n"); 2002 2002 long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes(); … … 2007 2007 double nondupSent = ((double)bytesTransmitted - ((double)resentTotal)*averagePacketSize); 2008 2008 double bwResent = (nondupSent <= 0 ? 0d : ((((double)resentTotal)*averagePacketSize) / nondupSent)); 2009 buf.append(" Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent));2010 buf.append(" <i>(includes retransmission required by packet loss)</i><br /></p>\n");2009 buf.append("<h3>Percentage of bytes retransmitted (lifetime): ").append(formatPct(bwResent)); 2010 buf.append("</h3><i>(Includes retransmission required by packet loss)</i><br /></p>\n"); 2011 2011 out.write(buf.toString()); 2012 2012 buf.setLength(0); … … 2027 2027 } 2028 2028 2029 private static final String KEY = "< p>" +2030 "<b id=\"def.peer\">peer</b>: the remote peer<br />\n" +2031 "<b id=\"def.dir\"> dir</b>: v means they offer to introduce us, ^ means we offer to introduce them<br />\n" +2032 "<b id=\"def.idle\"> idle</b>: the idle time is how long since a packet has been received or sent<br />\n" +2033 "<b id=\"def.rate\"> in/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second)<br />\n" +2034 "<b id=\"def.up\"> up</b>: the uptime is how long ago this session was established<br />\n" +2035 "<b id=\"def.skew\"> skew</b>: the skew says how far off the other user's clock is, relative to your own<br />\n" +2036 "<b id=\"def.cwnd\"> cwnd</b>: the congestion window is how many bytes in 'in flight' you can send w/out an acknowledgement/ <br />\n" +2037 " the number of currently active messages being sent /<br />\n" +2038 " the maximum number of concurrent messages to send /<br />\n"+2039 " the number of consecutive sends which were blocked due to throws message window size <br />\n" +2040 "<b id=\"def.ssthresh\"> ssthresh</b>: the slow start threshold help make sure the cwnd doesn't grow too fast<br />\n" +2041 "<b id=\"def.rtt\"> rtt</b>: the round trip time is how long it takes to get an acknowledgement of a packet<br />\n" +2042 "<b id=\"def.dev\"> dev</b>: the standard deviation of the round trip time, to help control the retransmit timeout<br />\n" +2043 "<b id=\"def.rto\"> rto</b>: the retransmit timeout controls how frequently an unacknowledged packet will be retransmitted<br />\n" +2044 "<b id=\"def.mtu\"> mtu</b>: current sending packet size / estimated receiving packet size<br />\n" +2045 "<b id=\"def.send\"> send</b>: the number of packets sent to the peer<br />\n" +2046 "<b id=\"def.recv\"> recv</b>: the number of packets received from the peer<br />\n" +2047 "<b id=\"def.resent\"> resent</b>: the number of packets retransmitted to the peer<br />\n" +2048 "<b id=\"def.dupRecv\"> dupRecv</b>: the number of duplicate packets received from the peer" +2049 "</ p>\n";2029 private static final String KEY = "<h3>Explanation of abbreviated terms used.</h3><div class=\"configure\">" + 2030 "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br />\n" + 2031 "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br />\n" + 2032 "<b id=\"def.idle\">Idle</b>: the idle time is how long since a packet has been received or sent.<br />\n" + 2033 "<b id=\"def.rate\">In/out</b>: the rates show a smoothed inbound and outbound transfer rate (KBytes per second).<br />\n" + 2034 "<b id=\"def.up\">Up</b>: the uptime is how long ago this session was established.<br />\n" + 2035 "<b id=\"def.skew\">Skew</b>: the skew says how far off the other user's clock is, relative to your own.<br />\n" + 2036 "<b id=\"def.cwnd\">Cwnd</b>: the congestion window is how many bytes in 'in flight' you can send w/out an acknowledgement, / <br />\n" + 2037 " the number of currently active messages being sent, /<br />\n" + 2038 " the maximum number of concurrent messages to send, /<br />\n"+ 2039 " the number of consecutive sends which were blocked due to throws message window size.<br />\n" + 2040 "<b id=\"def.ssthresh\">Sst</b>: the slow start threshold helps make sure the cwnd doesn't grow too fast.<br />\n" + 2041 "<b id=\"def.rtt\">Rtt</b>: the round trip time is how long it takes to get an acknowledgement of a packet.<br />\n" + 2042 "<b id=\"def.dev\">Dev</b>: the standard deviation of the round trip time, to help control the retransmit timeout.<br />\n" + 2043 "<b id=\"def.rto\">Rto</b>: the retransmit timeout controls how frequently an unacknowledged packet will be retransmitted.<br />\n" + 2044 "<b id=\"def.mtu\">Mtu</b>: current sending packet size / estimated receiving packet size.<br />\n" + 2045 "<b id=\"def.send\">TX</b>: the number of packets sent to the peer.<br />\n" + 2046 "<b id=\"def.recv\">RX</b>: the number of packets received from the peer.<br />\n" + 2047 "<b id=\"def.resent\">ReTX</b>: the number of packets retransmitted to the peer.<br />\n" + 2048 "<b id=\"def.dupRecv\">DupRX</b>: the number of duplicate packets received from the peer." + 2049 "</div>\n"; 2050 2050 2051 2051 /**
Note: See TracChangeset
for help on using the changeset viewer.