Changeset 4de0b73


Ignore:
Timestamp:
Jul 30, 2009 11:10:48 PM (11 years ago)
Author:
z3d <z3d@…>
Branches:
master
Children:
2f4c428
Parents:
6e7ad3e
Message:

Ongoing UI enhancements; peers.jsp gets some love.

Files:
17 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java

    r6e7ad3e r4de0b73  
    712712        out.write("Data directory: <input type=\"text\" size=\"40\" name=\"dataDir\" value=\"" + dataDir + "\" ");
    713713        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\" "
    715715                  + (autoStart ? "checked " : "")
    716716                  + "title=\"If true, automatically start torrents that are added\" />");
     
    739739                  + _manager.util().getMaxUpBW() + "\" size=\"3\" maxlength=\"3\" /> KBps <i>(Half <a href=\"/config.jsp\" target=\"blank\">available bandwidth</a> recommended.)</i><br />\n");
    740740       
    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\" "
    742742                  + (useOpenTrackers ? "checked " : "")
    743743                  + "title=\"If true, uses open trackers in addition\" /> ");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java

    r6e7ad3e r4de0b73  
    1515    public String getForm1() {
    1616        StringBuilder buf = new StringBuilder(1024);
    17         buf.append("<table border=\"1\">\n");
     17        buf.append("<table>\n");
    1818        buf.append("<tr><th>Client</th><th>Run at Startup?</th><th>Start Now</th><th>Class and arguments</th></tr>\n");
    1919       
     
    3131    public String getForm2() {
    3232        StringBuilder buf = new StringBuilder(1024);
    33         buf.append("<table border=\"1\">\n");
     33        buf.append("<table>\n");
    3434        buf.append("<tr><th>WebApp</th><th>Run at Startup?</th><th>Start Now</th><th>Description</th></tr>\n");
    3535        Properties props = RouterConsoleRunner.webAppProperties();
     
    5757            buf.append(name);
    5858        }
    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\" ");
    6060        if (enabled) {
    6161            buf.append("checked=\"true\" ");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigUIHelper.java

    r6e7ad3e r4de0b73  
    1010        String current = _context.getProperty(CSSHelper.PROP_THEME_NAME, CSSHelper.DEFAULT_THEME);
    1111        for (String theme : themes) {
    12             buf.append("<input type=\"radio\" name=\"theme\" ");
     12            buf.append("<input type=\"radio\" class=\"optbox\" name=\"theme\" ");
    1313            if (theme.equals(current))
    1414                buf.append("checked=\"true\" ");
  • apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java

    r6e7ad3e r4de0b73  
    4343        String proxy = _context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY);
    4444        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\" >";
    4646        else
    4747           
    48             return "<input type=\"checkbox\" value=\"true\" name=\"updateThroughProxy\" >";
     48            return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" >";
    4949    }
    5050   
  • apps/routerconsole/java/src/net/i2p/router/web/GraphHelper.java

    r6e7ad3e r4de0b73  
    110110            _out.write("<form action=\"graphs.jsp\" method=\"GET\">");
    111111            _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");
    114114            _out.write("Image sizes: width: <input size=\"4\" type=\"text\" name=\"width\" value=\"" + _width
    115115                       + "\" /> pixels, height: <input size=\"4\" type=\"text\" name=\"height\" value=\"" + _height 
  • apps/routerconsole/jsp/config.jsp

    r6e7ad3e r4de0b73  
    6060    } else {
    6161        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 />");
    6363    }
    6464 %>
     
    6868<!--
    6969 <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" /> />
    7171 <p>If enabled, your router will periodically anonymously probe some of your peers
    7272 to see what sort of throughput they can handle.  This improves your router's ability
     
    8181 </p><p>
    8282 <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" /> />
    8484    Enable UPnP to open firewall ports - <a href="peers.jsp#upnp">UPnP status</a>
    8585 </p><p>
    8686 <b>IP Configuration:</b><br />
    8787 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) %> />
    8989    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) %> />
    9191    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) %> />
    9393    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) %> />
    9595    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) %> />
    9797    Specify hostname or IP:
    9898    <input name ="udpHost1" type="text" size="16" value="<jsp:getProperty name="nethelper" property="udphostname" />" />
     
    111111    %>
    112112    <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) %> />
    114114    Hidden mode - do not publish IP <i>(prevents participating traffic)</i><br />
    115115 </p><p>
     
    118118 <input name ="udpPort" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="configuredUdpPort" />" /><br />
    119119<!-- 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" /> />
    121121 Require SSU introductions
    122122 <i>(Enable if you cannot open your firewall)</i>
     
    127127 <b>TCP Configuration:</b><br />
    128128 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) %> />
    130130    Use auto-detected IP address
    131131    <i>(currently <jsp:getProperty name="nethelper" property="udpIP" />)</i>
    132132    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) %> />
    134134    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) %> />
    136136    Specify hostname or IP:
    137137    <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) %> />
    139139    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) %> />
    141141    Completely disable <i>(select only if behind a firewall that throttles or blocks outbound TCP)</i><br />
    142142 </p><p>
    143143 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) %> />
    145145    Use the same port configured for UDP
    146146    <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) %> />
    148148    Specify Port:
    149149    <input name ="ntcpport" type="text" size="5" maxlength="5" value="<jsp:getProperty name="nethelper" property="ntcpport" />" /><br />
    150150 </p><p><b>Note: Changing these settings will restart your router.</b>
    151  </p>
     151 </p><hr>
    152152 <input type="submit" name="save" value="Save changes" /> <input type="reset" value="Cancel" />
    153153</div>
     
    249249      <!--
    250250 <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 />
    252252 <p>
    253253 This setting causes your router identity to be regenerated every time your IP address
  • apps/routerconsole/jsp/configstats.jsp

    r6e7ad3e r4de0b73  
    7474 <h3>Configure I2P Stat Collection</h3>
    7575 Enable full stats?
    76  <input type="checkbox" name="isFull" value="true" <%
     76 <input type="checkbox" class="optbox" name="isFull" value="true" <%
    7777 if (statshelper.getIsFull()) { %>checked="true" <% } %>/>
    7878 (change requires restart to take effect)<br />
     
    8282 <% while (statshelper.hasMoreStats()) {
    8383      while (statshelper.groupRequired()) { %>
    84  <tr><td valign="top" align="left" colspan="3">
     84 <tr><td align="left" colspan="3">
    8585     <b><%=statshelper.getCurrentGroupName()%></b>
    8686     (<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><%
    8888     } // end iterating over required groups for the current stat %>
    89  <tr><td valign="top" align="left">
     89 <tr><td align="left">
    9090     <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()%>" <%
    9292     if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td>
    93      <td valign="top" align="left">
     93     <td align="left">
    9494     <% 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()%>" <%
    9696       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 />
    9898     <%=statshelper.getCurrentStatDescription()%></td></tr><%
    9999    } // end iterating over all stats %>
    100100 <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>
    102102     <td colspan="2">Advanced filter:
    103103     <input type="text" name="explicitFilterValue" value="<%=statshelper.getExplicitFilter()%>" size="40" /></td></tr>
  • apps/susimail/src/src/i2p/susi/webmail/WebMail.java

    r6e7ad3e r4de0b73  
    15461546                                "<tr><td align=\"right\">Bcc:</td><td align=\"left\"><input type=\"text\" size=\"80\" name=\"" + NEW_BCC + "\" value=\"" + bcc + "\"></td></tr>\n" +
    15471547                                "<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>&nbsp;</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>&nbsp;</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" +
    15491549                                "<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>" +
    15501550                                "<tr><td colspan=\"2\" align=\"center\"><hr></td></tr>\n" +
     
    15591559                                }
    15601560                                Attachment attachment = (Attachment)it.next();
    1561                                 out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\">&nbsp;" + attachment.getFileName() + "</td></tr>");
     1561                                out.println( "<tr><td colspan=\"2\" align=\"center\"><input type=\"checkbox\" class=\"optbox\" name=\"check" + attachment.hashCode() + "\" value=\"1\">&nbsp;" + attachment.getFileName() + "</td></tr>");
    15621562                        }
    15631563                }
     
    16331633                                        ", invert=" + sessionObject.invert +
    16341634                                        ", 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\"" +
    16361636                                        ( idChecked ? "checked" : "" ) + ">" + ( RELEASE ? "" : "" + i ) + "</td><td>" + link + mail.shortSender + "</a></td><td>&nbsp;</td><td>" + link + mail.shortSubject + "</a></td><td>&nbsp;</td><td>" + mail.formattedDate + "</a></td><td>&nbsp;</td><td>" + mail.size + " Bytes</a></td></tr>" );
    16371637                        bg = 1 - bg;
  • core/java/src/net/i2p/crypto/TransientSessionKeyManager.java

    r6e7ad3e r4de0b73  
    503503        StringBuilder buf = new StringBuilder(1024);
    504504        buf.append("<h2>Inbound sessions</h2>");
    505         buf.append("<table border=\"1\">");
     505        buf.append("<table>");
    506506        Set<TagSet> inbound = getInboundTagSets();
    507507        Map<SessionKey, Set<TagSet>> inboundSets = new HashMap(inbound.size());
     
    529529        buf.append("<h2><b>Outbound sessions</b></h2>");
    530530
    531         buf.append("<table border=\"1\">");
     531        buf.append("<table>");
    532532        Set<OutboundSession> outbound = getOutboundSessions();
    533533        for (Iterator<OutboundSession> iter = outbound.iterator(); iter.hasNext();) {
  • installer/resources/themes/console/light/console.css

    r6e7ad3e r4de0b73  
    643643     font-weight: bold;
    644644}
     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  
    668668    /** render the HTML for the job stats */
    669669    private void getJobStats(StringBuilder buf) {
    670         buf.append("<table border=\"1\">\n");
     670        buf.append("<table>\n");
    671671        buf.append("<tr><th>Job</th><th>Runs</th>");
    672672        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  
    6868    public void renderStatusHTML(Writer out) throws IOException {
    6969        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>");
    7171        for (Entry<Hash, SessionKey> e : entrySet()) {
    7272            buf.append("\n<tr><td>");
  • router/java/src/net/i2p/router/Router.java

    r6e7ad3e r4de0b73  
    760760        buf.append("\n<hr /><a name=\"logs\"> </a>\n");
    761761        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");
    763763        for (Iterator iter = msgs.iterator(); iter.hasNext(); ) {
    764764            String msg = (String)iter.next();
  • router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java

    r6e7ad3e r4de0b73  
    620620        long now = now();
    621621        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>");
    624624        buf.append("<li>Inbound requests: <ol>");
    625625        synchronized (_pendingInboundRequests) {
     
    644644            }
    645645        }
    646         buf.append("</ol></li></ul></p>\n");
     646        buf.append("</ol></li></ul></p><hr>\n");
    647647        out.write(buf.toString());
    648648        out.flush();
  • router/java/src/net/i2p/router/transport/TransportManager.java

    r6e7ad3e r4de0b73  
    493493        }
    494494        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");
    496496        for (int i = 0; i < _transports.size(); i++) {
    497497            Transport t = (Transport)_transports.get(i);
  • router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java

    r6e7ad3e r4de0b73  
    640640
    641641        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");
    646646        buf.append("<table>\n");
    647647        buf.append("<tr><th><a href=\"#def.peer\">Peer</a></th>");
     
    651651        buf.append("<th align=\"right\"><a href=\"#def.up\">Up</a></th>");
    652652        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\">Recv</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>");
    655655        buf.append("<th>Out queue</th>");
    656656        buf.append("<th>Backlogged?</th>");
     
    666666            //if (ip != null)
    667667            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    668             buf.append("</td><td align=\"center\"><code>");
     668            buf.append("</td><td align=\"center\">");
    669669            if (con.isInbound())
    670                 buf.append("in");
     670                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/>");
    671671            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\">");
    674674            buf.append(con.getTimeSinceReceive()/1000);
    675675            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\">");
    677677            if (con.getTimeSinceReceive() < 10*1000) {
    678678                buf.append(formatRate(con.getRecvRate()/1024));
     
    688688                buf.append(formatRate(0));
    689689            }
    690             buf.append("KBps");
    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()));
    692692            totalUptime += con.getUptime();
    693693            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());
    696696            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());
    698698            totalRecv += con.getMessagesReceived();
    699699            long outQueue = con.getOutboundQueueSize();
    700700            if (outQueue <= 0) {
    701                 buf.append("</code></td><td align=\"right\"><code>No messages");
     701                buf.append("</td><td align=\"right\">No messages");
    702702            } 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");
    704704                if (outQueue > 1)
    705705                    buf.append("s");
    706706            }
    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");
    708708            long readTime = con.getReadTime();
    709709            if (readTime <= 0) {
    710                 buf.append("</code></td><td align=\"center\"><code>No");
     710                buf.append("</td><td align=\"center\">No");
    711711            } 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");
    715715            out.write(buf.toString());
    716716            buf.setLength(0);
     
    719719        if (peers.size() > 0) {
    720720            buf.append("<tr><td colspan=\"11\"><hr /></td></tr>\n");
    721             buf.append("<tr><td>").append(peers.size()).append(" peers</td><td>&nbsp;</td><td>&nbsp;");
    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>&nbsp;</td><td>&nbsp;</td><td>&nbsp;");
     721            buf.append("<tr><td align=\"center\"><b>").append(peers.size()).append(" peers</b></td><td>&nbsp;</td><td>&nbsp;");
     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>&nbsp;</td><td>&nbsp;</td><td>&nbsp;");
    727727            buf.append("</td></tr>\n");
    728728        }
  • router/java/src/net/i2p/router/transport/udp/UDPTransport.java

    r6e7ad3e r4de0b73  
    17641764       
    17651765        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");
    17701770        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>");
    17721772        if (sortFlags != FLAG_ALPHA)
    17731773            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>");
    17751775        appendSortLinks(buf, urlBase, sortFlags, "Sort by idle inbound", FLAG_IDLE_IN);
    17761776        buf.append("/");
    17771777        appendSortLinks(buf, urlBase, sortFlags, "Sort by idle outbound", FLAG_IDLE_OUT);
    17781778        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>");
    17801780        appendSortLinks(buf, urlBase, sortFlags, "Sort by inbound rate", FLAG_RATE_IN);
    17811781        buf.append("/");
    17821782        appendSortLinks(buf, urlBase, sortFlags, "Sort by outbound rate", FLAG_RATE_OUT);
    17831783        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>");
    17851785        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>");
    17871787        appendSortLinks(buf, urlBase, sortFlags, "Sort by clock skew", FLAG_SKEW);
    17881788        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>");
    17901790        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>");
    17921792        appendSortLinks(buf, urlBase, sortFlags, "Sort by slow start threshold", FLAG_SSTHRESH);
    17931793        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>");
    17951795        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>");
    17971797        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>");
    17991799        appendSortLinks(buf, urlBase, sortFlags, "Sort by retransmission timeout", FLAG_RTO);
    18001800        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>");
    18021802        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>");
    18041804        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>");
    18061806        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received", FLAG_RECV);
    18071807        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>");
    18091809        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>");
    18111811        appendSortLinks(buf, urlBase, sortFlags, "Sort by packets received more than once", FLAG_DUP);
    18121812        buf.append("</th>\n");
     
    18251825            //if (ip != null)
    18261826            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    1827             buf.append("</td><td><code>");
     1827            buf.append("</td><td nowrap>");
    18281828            if (peer.isInbound())
    1829                 buf.append("in ");
     1829                buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/> ");
    18301830            else
    1831                 buf.append("out ");
     1831                buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/> ");
    18321832            if (peer.getWeRelayToThemAs() > 0)
    18331833                buf.append("^");
     
    18401840            if (_activeThrottle.isChoked(peer.getRemotePeer())) {
    18411841                if (!appended) buf.append("<br />");
    1842                 buf.append(" [choked]");
     1842                buf.append(" <i>Choked</i>");
    18431843                appended = true;
    18441844            }
    18451845            if (peer.getConsecutiveFailedSends() > 0) {
    18461846                if (!appended) buf.append("<br />");
    1847                 buf.append(" [").append(peer.getConsecutiveFailedSends()).append(" failures]");
     1847                buf.append(" <i>").append(peer.getConsecutiveFailedSends()).append(" fail(s)</i>");
    18481848                appended = true;
    18491849            }
    18501850            if (_context.shitlist().isShitlisted(peer.getRemotePeer(), STYLE)) {
    18511851                if (!appended) buf.append("<br />");
    1852                 buf.append(" [shitlisted]");
     1852                buf.append(" <i>Shitlist</i>");
    18531853                appended = true;
    18541854            }
     
    18561856            //if (ip != null)
    18571857            //    buf.append(' ').append(_context.blocklist().toStr(ip));
    1858             buf.append("</code></td>");
     1858            buf.append("</td>");
    18591859           
    18601860            long idleIn = (now-peer.getLastReceiveTime())/1000;
     
    18631863            if (idleOut < 0) idleOut = 0;
    18641864           
    1865             buf.append("<td align=\"right\" ><code>");
     1865            buf.append("<td align=\"right\" >");
    18661866            buf.append(idleIn);
    18671867            buf.append("s/");
    18681868            buf.append(idleOut);
    1869             buf.append("s</code></td>");
     1869            buf.append("s</td>");
    18701870 
    18711871            int recvBps = (idleIn > 2 ? 0 : peer.getReceiveBps());
    18721872            int sendBps = (idleOut > 2 ? 0 : peer.getSendBps());
    18731873           
    1874             buf.append("<td align=\"right\" ><code>");
     1874            buf.append("<td align=\"right\" nowrap>");
    18751875            buf.append(formatKBps(recvBps));
    18761876            buf.append("/");
    18771877            buf.append(formatKBps(sendBps));
    1878             buf.append("KBps ");
     1878            buf.append("K/s ");
    18791879            //buf.append(formatKBps(peer.getReceiveACKBps()));
    1880             //buf.append("KBps/");
     1880            //buf.append("K/s/");
    18811881            //buf.append(formatKBps(peer.getSendACKBps()));
    1882             //buf.append("KBps ");
    1883             buf.append("</code></td>");
     1882            //buf.append("K/s ");
     1883            buf.append("</td>");
    18841884
    18851885            long uptime = now - peer.getKeyEstablishedTime();
    18861886           
    1887             buf.append("<td align=\"right\" ><code>");
     1887            buf.append("<td align=\"right\" >");
    18881888            buf.append(DataHelper.formatDuration(uptime));
    1889             buf.append("</code></td>");
     1889            buf.append("</td>");
    18901890           
    1891             buf.append("<td align=\"right\" ><code>");
     1891            buf.append("<td align=\"right\" >");
    18921892            buf.append(peer.getClockSkew());
    1893             buf.append("s</code></td>");
     1893            buf.append("s</td>");
    18941894            offsetTotal = offsetTotal + peer.getClockSkew();
    18951895
    18961896            long sendWindow = peer.getSendWindowBytes();
    18971897           
    1898             buf.append("<td align=\"right\" ><code>");
     1898            buf.append("<td align=\"right\" >");
    18991899            buf.append(sendWindow/1024);
    19001900            buf.append("K");
     
    19021902            buf.append("/").append(peer.getConcurrentSendWindow());
    19031903            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\" >");
    19071907            buf.append(peer.getSlowStartThreshold()/1024);
    1908             buf.append("K</code></td>");
     1908            buf.append("K</td>");
    19091909
    19101910            int rtt = peer.getRTT();
    19111911            int rto = peer.getRTO();
    19121912           
    1913             buf.append("<td align=\"right\" ><code>");
     1913            buf.append("<td align=\"right\" >");
    19141914            buf.append(rtt);
    1915             buf.append("</code></td>");
     1915            buf.append("</td>");
    19161916           
    1917             buf.append("<td align=\"right\" ><code>");
     1917            buf.append("<td align=\"right\" >");
    19181918            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\" >");
    19221922            buf.append(rto);
    1923             buf.append("</code></td>");
     1923            buf.append("</td>");
    19241924           
    1925             buf.append("<td align=\"right\" ><code>");
     1925            buf.append("<td align=\"right\" >");
    19261926            buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU());
    19271927           
     
    19291929            //buf.append(peer.getMTUIncreases()).append('/');
    19301930            //buf.append(peer.getMTUDecreases());
    1931             buf.append("</code></td>");
     1931            buf.append("</td>");
    19321932       
    19331933            long sent = peer.getPacketsTransmitted();
    19341934            long recv = peer.getPacketsReceived();
    19351935           
    1936             buf.append("<td align=\"right\" ><code>");
     1936            buf.append("<td align=\"right\" >");
    19371937            buf.append(sent);
    1938             buf.append("</code></td>");
     1938            buf.append("</td>");
    19391939           
    1940             buf.append("<td align=\"right\" ><code>");
     1940            buf.append("<td align=\"right\" >");
    19411941            buf.append(recv);
    1942             buf.append("</code></td>");
     1942            buf.append("</td>");
    19431943           
    19441944            //double sent = (double)peer.getPacketsPeriodTransmitted();
     
    19501950            long dupRecv = peer.getPacketsReceivedDuplicate();
    19511951           
    1952             buf.append("<td align=\"right\" ><code>");
     1952            buf.append("<td align=\"right\" >");
    19531953            //buf.append(formatPct(sendLostPct));
    19541954            buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent);
    19551955            //buf.append(peer.getPacketRetransmissionRate());
    1956             buf.append("</code></td>");
     1956            buf.append("</td>");
    19571957           
    19581958            double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived();
    1959             buf.append("<td align=\"right\" ><code>");
     1959            buf.append("<td align=\"right\" >");
    19601960            buf.append(dupRecv); //formatPct(recvDupPct));
    1961             buf.append("</code></td>");
     1961            buf.append("</td>");
    19621962
    19631963            buf.append("</tr>\n");
     
    19831983        buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n");
    19841984        buf.append(" <tr><td colspan=\"3\"><b>Total</b></td>");
    1985         buf.append("     <td align=\"right\">");
     1985        buf.append("     <td align=\"right\" nowrap><b>");
    19861986        buf.append(formatKBps(bpsIn)).append("/").append(formatKBps(bpsOut));
    1987         buf.append("KBps</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>");
    19911991        buf.append(numPeers > 0 ? cwinTotal/(numPeers*1024) + "K" : "0K");
    1992         buf.append("</td><td>&nbsp;</td>\n");
    1993         buf.append("     <td align=\"right\">");
     1992        buf.append("</b></td><td>&nbsp;</td>\n");
     1993        buf.append("     <td align=\"right\"><b>");
    19941994        buf.append(numPeers > 0 ? rttTotal/numPeers : 0);
    1995         buf.append("</td><td align=\"right\">&nbsp;</td><td align=\"right\">");
     1995        buf.append("</b></td><td align=\"right\">&nbsp;</td><td align=\"right\"><b>");
    19961996        buf.append(numPeers > 0 ? rtoTotal/numPeers : 0);
    1997         buf.append("</td>\n     <td>&nbsp;</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>&nbsp;</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");
    20012001        buf.append(" </tr></table></p><p>\n");
    20022002        long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes();
     
    20072007        double nondupSent = ((double)bytesTransmitted - ((double)resentTotal)*averagePacketSize);
    20082008        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");
    20112011        out.write(buf.toString());
    20122012        buf.setLength(0);
     
    20272027    }
    20282028   
    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         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of currently active messages being sent /<br />\n" +
    2038         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the maximum number of concurrent messages to send /<br />\n"+
    2039         "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the number of currently active messages being sent, /<br />\n" +
     2038        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the maximum number of concurrent messages to send, /<br />\n"+
     2039        "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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";
    20502050   
    20512051    /**
Note: See TracChangeset for help on using the changeset viewer.