Changeset 24e83398
- Timestamp:
- Jul 31, 2009 7:15:35 PM (12 years ago)
- Branches:
- master
- Children:
- 219af360
- Parents:
- 2f4c428
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
apps/routerconsole/jsp/configstats.jsp
r2f4c428 r24e83398 82 82 <% while (statshelper.hasMoreStats()) { 83 83 while (statshelper.groupRequired()) { %> 84 <tr ><td align="left" colspan="3">84 <tr class="tablefooter"><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><b>Log</b></td><td><b>Graph</b></td><td></td></tr><%87 </td></tr><tr class="tablefooter"><td align="center"><b>Log</b></td><td align="center"><b>Graph</b></td><td></td></tr><% 88 88 } // end iterating over required groups for the current stat %> 89 <tr><td align=" left">89 <tr><td align="center"> 90 90 <a name="<%=statshelper.getCurrentStatName()%>"></a> 91 91 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="statList" value="<%=statshelper.getCurrentStatName()%>" <% 92 92 if (statshelper.getCurrentIsLogged()) { %>checked="true" <% } %>/></td> 93 <td align=" left">93 <td align="center"> 94 94 <% if (statshelper.getCurrentCanBeGraphed()) { %> 95 95 <input id="<%=statshelper.getCurrentGroupName()%>" type="checkbox" class="optbox" name="graphList" value="<%=statshelper.getCurrentGraphName()%>" <% … … 98 98 <%=statshelper.getCurrentStatDescription()%></td></tr><% 99 99 } // end iterating over all stats %> 100 <tr><td colspan="3">< hr /></td></tr>101 <tr><td ><input type="checkbox" class="optbox" name="explicitFilter" /></td>100 <tr><td colspan="3"></td></tr> 101 <tr><td align="center"><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> 104 <tr><td colspan="3">< hr /></td></tr>105 <tr ><td><input type="submit" name="shouldsave" value="Save changes" /> </td>104 <tr><td colspan="3"></td></tr> 105 <tr class="tablefooter"><td><input type="submit" name="shouldsave" value="Save changes" /> </td> 106 106 <td><input type="reset" value="Cancel" /></td><td></td></tr></form> 107 107 </table> -
apps/routerconsole/jsp/summaryframe.jsp
r2f4c428 r24e83398 63 63 out.print("<hr /><p><form action=\"summaryframe.jsp\" method=\"GET\">\n"); 64 64 if ("0".equals(d)) { 65 out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" />\n");65 out.print("<b>Refresh (s):<b> <input size=\"3\" type=\"text\" name=\"refresh\" value=\"60\" align=\"right\" />\n"); 66 66 out.print("<button type=\"submit\">Enable</button>\n"); 67 67 } else { -
history.txt
r2f4c428 r24e83398 1 2009-07-31 dr|z3d 2 * Resolve anomalous buttons and text fields in console ui. 3 * Enhance presentation of data in /peers.jsp. 4 * Fix themes issue with horizontal width of radio/checkbox icons. 5 (Radioboxes currently non-functional in Opera). 6 * Other cosmetic UI enhancements. 7 1 8 * 2009-07-31 0.7.6 released 2 9 -
installer/resources/themes/console/dark/console.css
r2f4c428 r24e83398 66 66 67 67 div.toolbar a:hover, button:hover{ 68 border: 1px solid # eeeeff;68 border: 1px solid #f60; 69 69 background: #003; 70 70 color: #f60; … … 256 256 257 257 th { 258 padding: 6px 3px;259 color: #eef; 260 text-align: center; 261 font-size: 8pt;258 padding: 6px 2px; 259 color: #eef; 260 text-align: center; 261 font-size: 9pt; 262 262 background: #004 url('images/tabletitledark.png') repeat-x; 263 263 border-top: 1px solid #99f; 264 border-bottom: 1px solid #99f; 264 border-bottom: 1px solid #99f !important; 265 line-height: 110%; 265 266 } 266 267 … … 286 287 */ 287 288 td { 288 padding: 6px 4px;289 padding: 6px 3px; 289 290 color: #eef; 290 291 vertical-align: middle; … … 436 437 437 438 button { 439 font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 438 440 border: 1px outset #ddddc0; 439 441 padding: 1px 3px; … … 487 489 488 490 input { 491 border: 1px outset #bbf; 489 492 background: #bbf; 490 493 color: #002; 491 494 margin: 5px; 492 495 font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 493 border: 1px solid #99f;494 496 padding: 1px 2px; 495 497 text-decoration: none; 496 498 min-width: 110px; 497 opacity: 0.8; 499 border-radius: 4px; 500 -moz-border-radius: 4px; 501 -khtml-border-radius: 4px; 498 502 } 499 503 500 504 input:hover { 501 background: # eef;502 color: # 001;505 background: #003; 506 color: #f60; 503 507 border: 1px solid #f60; 504 508 } … … 506 510 input:active { 507 511 background: #002; 512 color: #f30; 513 border: 1px solid #f30; 514 } 515 516 input:active { 517 border: 1px inset #f60; 518 background: #f60; 508 519 color: #fff; 509 border: 1px solid #f60; 520 } 521 522 input[type=text] { 523 background: #002; 524 color: #eef; 525 margin: 5px 10px; 526 padding: 4px 2px; 527 font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 528 border: 1px solid #bbf; 529 text-decoration: none; 530 border-radius: 4px; 531 -moz-border-radius: 4px; 532 -khtml-border-radius: 4px; 533 } 534 535 input[type=text]:active, input[type=text]:hover { 536 background: #001; 510 537 } 511 538 … … 513 540 background: #002; 514 541 color: #eef; 515 margin: 5px ;516 border: 1px solid # 99f;517 border-radius: 0;518 -moz-border-radius: 0;519 -khtml-border-radius: 0;542 margin: 5px 10px; 543 border: 1px solid #bbf; 544 border-radius: 4px; 545 -moz-border-radius: 4px; 546 -khtml-border-radius: 4px; 520 547 min-width: 110px; 521 548 font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; … … 527 554 color: #eef; 528 555 padding: 5px; 529 margin: 1 5px 15px 5px0px;556 margin: 10px; 530 557 border-radius: 4px; 531 558 -moz-border-radius: 4px; … … 533 560 font: 9pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; 534 561 min-height: 100px; 535 min-width: 100%;562 min-width: 97%; 536 563 text-align: left; 537 564 border: 1px solid #99f; … … 598 625 font-size: 9pt; 599 626 } 627 628 .optbox { 629 min-width: 16px !important; 630 max-width: 16px !important; 631 width: 16px !important; 632 min-height: 16px; 633 max-height: 16px; 634 height: 16px; 635 opacity: 1.0; 636 border: 0; 637 margin: 0 0 0 10px; 638 } 639 640 .optbox:hover { 641 min-width: 16px !important; 642 max-width: 16px !important; 643 width: 16px !important; 644 min-height: 16px; 645 max-height: 16px; 646 height: 16px; 647 opacity: 1.0; 648 border: 0; 649 margin: 0 0 0 10px; 650 } 651 652 .cells { 653 border: 1px inset #005; 654 border-left: 1px outset #002; 655 } 656 657 .tablefooter tr, .tablefooter td { 658 background: #004 url('images/tabletitledark.png') repeat-x !important; 659 border-top: 1px solid #99f; 660 border-bottom: 1px solid #99f !important; 661 font-size: 8pt; 662 line-height: 110%; 663 } -
installer/resources/themes/console/light/console.css
r2f4c428 r24e83398 300 300 font-size: 7pt; 301 301 background: #b4c8ff url('images/tabletitlelight.png') repeat-x; 302 font: 7pt/130% "Lucida Sans Unicode", Verdana, Bitstream Vera Sans", Tahoma, Helvetica, sans-serif; 302 303 } 303 304 … … 308 309 text-align: center; 309 310 font-size: 9pt; 310 border-bottom: 1px solid #001; 311 border-top: 1px solid #001; 311 line-height: 110%; 312 border-bottom: 1px solid #001 !important; 313 border-top: 1px solid #001 !important; 312 314 } 313 315 … … 332 334 */ 333 335 td { 334 padding: 5px ;336 padding: 5px 3px; 335 337 color: #000; 336 338 vertical-align: middle; … … 474 476 } 475 477 476 button { 478 button, button:visited { 479 font: bold 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 477 480 border: 1px outset #ddddc0; 478 481 padding: 1px 3px; … … 527 530 text-decoration: none; 528 531 min-width: 110px; 529 opacity: 0.8; 530 } 532 } 533 534 input, input:visited { 535 border: 1px outset #bbf; 536 background: #bbf; 537 color: #001; 538 margin: 5px; 539 font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 540 padding: 1px 2px; 541 text-decoration: none; 542 min-width: 110px; 543 border-radius: 4px; 544 -moz-border-radius: 4px; 545 -khtml-border-radius: 4px; 546 } 547 531 548 532 549 input:hover { … … 542 559 border: 1px solid #f60; 543 560 opacity: 1.0; 561 } 562 563 input[type=text] { 564 background: #eef; 565 color: #001; 566 margin: 5px 10px 5px 10px; 567 padding: 4px 2px; 568 font: bold 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 569 border: 1px solid #001; 570 text-decoration: none; 544 571 } 545 572 … … 567 594 min-width: 110px; 568 595 font: 9pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif; 596 border-radius: 4px; 597 -moz-border-radius: 4px; 598 -khtml-border-radius: 4px; 569 599 } 570 600 571 601 textarea { 572 602 padding: 5px; 573 margin: 15px 15px 5px0px;603 margin: 5px 15px 5px 10px; 574 604 background: #eef; 575 605 color: #003; … … 579 609 font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono; 580 610 min-height: 100px; 581 min-width: 100%;611 min-width: 97%; 582 612 border: 1px solid #001; 583 613 } … … 665 695 border: 0; 666 696 } 697 698 .cells { 699 border-left: 1px outset #bbf; 700 border-top: 1px inset #99f !important; 701 border-bottom: 1px inset #99f !important; 702 } 703 704 .tablefooter { 705 background: #b4c8ff url('images/tabletitlelight.png') repeat-x; 706 } 707 708 .tablefooter tr, .tablefooter td { 709 background: #b4c8ff url('images/tabletitlelight.png') repeat-x; 710 border-top: 1px solid #001; 711 border-bottom: 1px solid #001 !important; 712 padding: 8px 2px !important; 713 font-size: 8pt; 714 line-height: 110%; 715 } -
readme.html
r2f4c428 r24e83398 36 36 There are many more eepsites - just follow the links from the ones you see, 37 37 bookmark your favorites, and visit them often! 38 </ul> 38 </ul></ul> 39 39 <br /> 40 40 <br /> -
router/java/src/net/i2p/router/RouterVersion.java
r2f4c428 r24e83398 19 19 public final static String ID = "Monotone"; 20 20 public final static String VERSION = CoreVersion.VERSION; 21 public final static long BUILD = 0 ;21 public final static long BUILD = 02; 22 22 /** for example "-test" */ 23 public final static String EXTRA = " ";23 public final static String EXTRA = "-zed"; 24 24 public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; 25 25 public static void main(String args[]) { -
router/java/src/net/i2p/router/peermanager/ProfileOrganizerRenderer.java
r2f4c428 r24e83398 219 219 buf.append("</table>"); 220 220 221 buf.append("<p><i>Definitions:<ul>"); 221 buf.append("<h3>Thresholds:</h3>"); 222 buf.append("<b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br />"); 223 buf.append("<b>Capacity:</b> ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)<br />"); 224 buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)"); 225 buf.append("<h3>Definitions:</h3><ul>"); 222 226 buf.append("<li><b>groups</b>: as determined by the profile organizer</li>"); 223 227 buf.append("<li><b>caps</b>: capabilities in the netDb, not used to determine profiles</li>"); … … 227 231 buf.append("<li><b>failing?</b>: is the peer currently swamped (and if possible we should avoid nagging them)?</li>"); 228 232 buf.append("</ul></i>"); 229 buf.append("<p><b>Thresholds:</b><br />");230 buf.append("<b>Speed:</b> ").append(num(_organizer.getSpeedThreshold())).append(" (").append(fast).append(" fast peers)<br />");231 buf.append("<b>Capacity:</b> ").append(num(_organizer.getCapacityThreshold())).append(" (").append(reliable).append(" high capacity peers)<br />");232 buf.append("<b>Integration:</b> ").append(num(_organizer.getIntegrationThreshold())).append(" (").append(integrated).append(" well integrated peers)<br />");233 233 out.write(buf.toString()); 234 234 out.flush(); -
router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
r2f4c428 r24e83398 661 661 for (Iterator iter = peers.iterator(); iter.hasNext(); ) { 662 662 NTCPConnection con = (NTCPConnection)iter.next(); 663 buf.append("<tr> <td align=\"right\" nowrap>");663 buf.append("<tr> <td class=\"cells\" align=\"left\" nowrap>"); 664 664 buf.append(_context.commSystem().renderPeerHTML(con.getRemotePeer().calculateHash())); 665 665 //byte[] ip = getIP(con.getRemotePeer().calculateHash()); 666 666 //if (ip != null) 667 667 // buf.append(' ').append(_context.blocklist().toStr(ip)); 668 buf.append("</td> <tdalign=\"center\">");668 buf.append("</td> <td class=\"cells\" align=\"center\">"); 669 669 if (con.isInbound()) 670 670 buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/>"); 671 671 else 672 672 buf.append("<img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/>"); 673 buf.append("</td> <tdalign=\"right\">");673 buf.append("</td> <td class=\"cells\" align=\"right\">"); 674 674 buf.append(con.getTimeSinceReceive()/1000); 675 675 buf.append("s/").append(con.getTimeSinceSend()/1000); 676 buf.append("s</td> <td align=\"right\">");676 buf.append("s</td> <td class=\"cells\" align=\"center\">"); 677 677 if (con.getTimeSinceReceive() < 10*1000) { 678 678 buf.append(formatRate(con.getRecvRate()/1024)); … … 689 689 } 690 690 buf.append("K/s"); 691 buf.append("</td> <td align=\"right\">").append(DataHelper.formatDuration(con.getUptime()));691 buf.append("</td> <td class=\"cells\" align=\"center\">").append(DataHelper.formatDuration(con.getUptime())); 692 692 totalUptime += con.getUptime(); 693 693 offsetTotal = offsetTotal + con.getClockSkew(); 694 buf.append("</td> <td align=\"right\">").append(con.getClockSkew());695 buf.append("s</td> <td align=\"right\">").append(con.getMessagesSent());694 buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getClockSkew()); 695 buf.append("s</td> <td class=\"cells\" align=\"center\">").append(con.getMessagesSent()); 696 696 totalSend += con.getMessagesSent(); 697 buf.append("</td> <td align=\"right\">").append(con.getMessagesReceived());697 buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getMessagesReceived()); 698 698 totalRecv += con.getMessagesReceived(); 699 699 long outQueue = con.getOutboundQueueSize(); 700 700 if (outQueue <= 0) { 701 buf.append("</td> <td align=\"right\">No messages");701 buf.append("</td> <td class=\"cells\" align=\"center\">No messages"); 702 702 } else { 703 buf.append("</td> <td align=\"right\">").append(outQueue).append(" message");703 buf.append("</td> <td class=\"cells\" align=\"center\">").append(outQueue).append(" message"); 704 704 if (outQueue > 1) 705 705 buf.append("s"); 706 706 } 707 buf.append("</td> <tdalign=\"center\">").append(con.getConsecutiveBacklog() > 0 ? "true" : "false");707 buf.append("</td> <td class=\"cells\" align=\"center\">").append(con.getConsecutiveBacklog() > 0 ? "true" : "false"); 708 708 long readTime = con.getReadTime(); 709 709 if (readTime <= 0) { 710 buf.append("</td> <tdalign=\"center\">No");710 buf.append("</td> <td class=\"cells\" align=\"center\">No"); 711 711 } else { 712 buf.append("</td> <td>For ").append(DataHelper.formatDuration(readTime));712 buf.append("</td> <td class=\"cells\">For ").append(DataHelper.formatDuration(readTime)); 713 713 } 714 714 buf.append("</td></tr>\n"); … … 718 718 719 719 if (peers.size() > 0) { 720 buf.append("<tr><td colspan=\"11\"><hr /></td></tr>\n");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> ");720 // buf.append("<tr> <td colspan=\"11\"><hr /></td></tr>\n"); 721 buf.append("<tr class=\"tablefooter\"> <td align=\"center\"><b>").append(peers.size()).append(" peers</b></td> <td> </td> <td> "); 722 buf.append("</td> <td align=\"center\"><b>").append(formatRate(bpsRecv/1024)).append("/").append(formatRate(bpsSend/1024)).append("K/s</b>"); 723 buf.append("</td> <td align=\"center\"><b>").append(DataHelper.formatDuration(totalUptime/peers.size())); 724 buf.append("</b></td> <td align=\"center\"><b>").append(peers.size() > 0 ? DataHelper.formatDuration(offsetTotal*1000/peers.size()) : "0ms"); 725 buf.append("</b></td> <td align=\"center\"><b>").append(totalSend).append("</b></td> <td align=\"center\"><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
r2f4c428 r24e83398 1772 1772 if (sortFlags != FLAG_ALPHA) 1773 1773 buf.append(" <a href=\"").append(urlBase).append("?sort=0\">V</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>");1774 buf.append("</th><th class=\"smallhead\" nowrap><a href=\"#def.dir\" title=\"Direction/Introduction\">Dir</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("/"); … … 1820 1820 continue; // don't include old peers 1821 1821 1822 buf.append("<tr> <td align=\"right\" nowrap>");1822 buf.append("<tr> <td class=\"cells\" align=\"left\" nowrap>"); 1823 1823 buf.append(_context.commSystem().renderPeerHTML(peer.getRemotePeer())); 1824 1824 //byte ip[] = peer.getRemoteIP(); 1825 1825 //if (ip != null) 1826 1826 // buf.append(' ').append(_context.blocklist().toStr(ip)); 1827 buf.append("</td> <td nowrap>");1827 buf.append("</td> <td class=\"cells\" nowrap align=\"left\">"); 1828 1828 if (peer.isInbound()) 1829 1829 buf.append("<img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/> "); … … 1863 1863 if (idleOut < 0) idleOut = 0; 1864 1864 1865 buf.append(" <tdalign=\"right\" >");1865 buf.append(" <td class=\"cells\" align=\"right\" >"); 1866 1866 buf.append(idleIn); 1867 1867 buf.append("s/"); … … 1872 1872 int sendBps = (idleOut > 2 ? 0 : peer.getSendBps()); 1873 1873 1874 buf.append(" <tdalign=\"right\" nowrap>");1874 buf.append(" <td class=\"cells\" align=\"right\" nowrap>"); 1875 1875 buf.append(formatKBps(recvBps)); 1876 1876 buf.append("/"); … … 1885 1885 long uptime = now - peer.getKeyEstablishedTime(); 1886 1886 1887 buf.append(" <td align=\"right\" >");1887 buf.append(" <td class=\"cells\" align=\"center\" >"); 1888 1888 buf.append(DataHelper.formatDuration(uptime)); 1889 1889 buf.append("</td>"); 1890 1890 1891 buf.append(" <td align=\"right\" >");1891 buf.append(" <td class=\"cells\" align=\"center\" >"); 1892 1892 buf.append(peer.getClockSkew()); 1893 1893 buf.append("s</td>"); … … 1896 1896 long sendWindow = peer.getSendWindowBytes(); 1897 1897 1898 buf.append(" <tdalign=\"right\" >");1898 buf.append(" <td class=\"cells\" align=\"right\" >"); 1899 1899 buf.append(sendWindow/1024); 1900 1900 buf.append("K"); … … 1904 1904 buf.append("</td>"); 1905 1905 1906 buf.append(" <td align=\"right\" >");1906 buf.append(" <td class=\"cells\" align=\"center\" >"); 1907 1907 buf.append(peer.getSlowStartThreshold()/1024); 1908 1908 buf.append("K</td>"); … … 1911 1911 int rto = peer.getRTO(); 1912 1912 1913 buf.append(" <tdalign=\"right\" >");1913 buf.append(" <td class=\"cells\" align=\"right\" >"); 1914 1914 buf.append(rtt); 1915 1915 buf.append("</td>"); 1916 1916 1917 buf.append(" <tdalign=\"right\" >");1917 buf.append(" <td class=\"cells\" align=\"right\" >"); 1918 1918 buf.append(peer.getRTTDeviation()); 1919 1919 buf.append("</td>"); 1920 1920 1921 buf.append(" <tdalign=\"right\" >");1921 buf.append(" <td class=\"cells\" align=\"right\" >"); 1922 1922 buf.append(rto); 1923 1923 buf.append("</td>"); 1924 1924 1925 buf.append(" <tdalign=\"right\" >");1925 buf.append(" <td class=\"cells\" align=\"right\" >"); 1926 1926 buf.append(peer.getMTU()).append("/").append(peer.getReceiveMTU()); 1927 1927 … … 1934 1934 long recv = peer.getPacketsReceived(); 1935 1935 1936 buf.append(" <td align=\"right\" >");1936 buf.append(" <td class=\"cells\" align=\"center\" >"); 1937 1937 buf.append(sent); 1938 1938 buf.append("</td>"); 1939 1939 1940 buf.append(" <td align=\"right\" >");1940 buf.append(" <td class=\"cells\" align=\"center\" >"); 1941 1941 buf.append(recv); 1942 1942 buf.append("</td>"); … … 1950 1950 long dupRecv = peer.getPacketsReceivedDuplicate(); 1951 1951 1952 buf.append(" <td align=\"right\" >");1952 buf.append(" <td class=\"cells\" align=\"center\" >"); 1953 1953 //buf.append(formatPct(sendLostPct)); 1954 1954 buf.append(resent); // + "/" + peer.getPacketsPeriodRetransmitted() + "/" + sent); … … 1957 1957 1958 1958 double recvDupPct = (double)peer.getPacketsReceivedDuplicate()/(double)peer.getPacketsReceived(); 1959 buf.append(" <td align=\"right\" >");1959 buf.append(" <td class=\"cells\" align=\"center\" >"); 1960 1960 buf.append(dupRecv); //formatPct(recvDupPct)); 1961 1961 buf.append("</td>"); … … 1981 1981 } 1982 1982 1983 buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n");1984 buf.append(" <tr ><td colspan=\"3\"><b>Total</b></td>");1985 buf.append(" <td align=\"right\" nowrap><b>");1983 // buf.append("<tr><td colspan=\"16\"><hr /></td></tr>\n"); 1984 buf.append(" <tr class=\"tablefooter\"> <td colspan=\"3\" align=\"right\"><b>Total</b></td>"); 1985 buf.append(" <td align=\"center\" nowrap><b>"); 1986 1986 buf.append(formatKBps(bpsIn)).append("/").append(formatKBps(bpsOut)); 1987 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>");1988 buf.append(" <td align=\"center\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(uptimeMsTotal/numPeers) : "0s"); 1989 buf.append("</b></td> <td align=\"center\"><b>").append(numPeers > 0 ? DataHelper.formatDuration(offsetTotal*1000/numPeers) : "0ms").append("</b></td>\n"); 1990 buf.append(" <td align=\"center\"><b>"); 1991 1991 buf.append(numPeers > 0 ? cwinTotal/(numPeers*1024) + "K" : "0K"); 1992 buf.append("</b></td> <td> </td>\n");1993 buf.append(" <td align=\"right\"><b>");1992 buf.append("</b></td> <td> </td>\n"); 1993 buf.append(" <td align=\"center\"><b>"); 1994 1994 buf.append(numPeers > 0 ? rttTotal/numPeers : 0); 1995 buf.append("</b></td> <td align=\"right\"> </td><td align=\"right\"><b>");1995 buf.append("</b></td> <td> </td> <td align=\"center\"><b>"); 1996 1996 buf.append(numPeers > 0 ? rtoTotal/numPeers : 0); 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");1997 buf.append("</b></td>\n <td> </td> <td align=\"center\"><b>"); 1998 buf.append(sendTotal).append("</td></b> <td align=\"center\"><b>").append(recvTotal).append("</b></td>\n"); 1999 buf.append(" <td align=\"center\"><b>").append(resentTotal); 2000 buf.append("</b></td> <td align=\"center\"><b>").append(dupRecvTotal).append("</b></td>\n"); 2001 2001 buf.append(" </tr></table></p><p>\n"); 2002 2002 long bytesTransmitted = _context.bandwidthLimiter().getTotalAllocatedOutboundBytes(); … … 2027 2027 } 2028 2028 2029 private static final String KEY = "<h3> Explanation of abbreviated terms used.</h3><div class=\"configure\">" +2029 private static final String KEY = "<h3>Definitions:</h3><div class=\"configure\">" + 2030 2030 "<br><b id=\"def.peer\">Peer</b>: the remote peer.<br />\n" + 2031 2031 "<b id=\"def.dir\">Dir</b>: v means they offer to introduce us, ^ means we offer to introduce them.<br />\n" + … … 2035 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 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" +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 2040 "<b id=\"def.ssthresh\">Sst</b>: the slow start threshold helps make sure the cwnd doesn't grow too fast.<br />\n" + 2041 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" + -
router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java
r2f4c428 r24e83398 456 456 out.write("<tr>"); 457 457 if (cfg.getReceiveTunnel() != null) 458 out.write(" <tdalign=\"center\">" + cfg.getReceiveTunnel().getTunnelId() +"</td>");459 else 460 out.write(" <tdalign=\"center\">n/a</td>");458 out.write(" <td class=\"cells\" align=\"center\">" + cfg.getReceiveTunnel().getTunnelId() +"</td>"); 459 else 460 out.write(" <td class=\"cells\" align=\"center\">n/a</td>"); 461 461 if (cfg.getReceiveFrom() != null) 462 out.write(" <tdalign=\"right\">" + netDbLink(cfg.getReceiveFrom()) +"</td>");463 else 464 out.write(" <tdalign=\"center\"> </td>");462 out.write(" <td class=\"cells\" align=\"right\">" + netDbLink(cfg.getReceiveFrom()) +"</td>"); 463 else 464 out.write(" <td class=\"cells\" align=\"center\"> </td>"); 465 465 if (cfg.getSendTunnel() != null) 466 out.write(" <tdalign=\"center\">" + cfg.getSendTunnel().getTunnelId() +"</td>");467 else 468 out.write(" <tdalign=\"center\"> </td>");466 out.write(" <td class=\"cells\" align=\"center\">" + cfg.getSendTunnel().getTunnelId() +"</td>"); 467 else 468 out.write(" <td class=\"cells\" align=\"center\"> </td>"); 469 469 if (cfg.getSendTo() != null) 470 out.write(" <tdalign=\"center\">" + netDbLink(cfg.getSendTo()) +"</td>");471 else 472 // out.write(" <tdalign=\"center\"> </td>");473 out.write(" <tdalign=\"center\"> </td>");470 out.write(" <td class=\"cells\" align=\"center\">" + netDbLink(cfg.getSendTo()) +"</td>"); 471 else 472 // out.write(" <td class=\"cells\" align=\"center\"> </td>"); 473 out.write(" <td class=\"cells\" align=\"center\"> </td>"); 474 474 long timeLeft = cfg.getExpiration()-_context.clock().now(); 475 475 if (timeLeft > 0) 476 out.write(" <tdalign=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>");477 else 478 out.write(" <tdalign=\"center\">(grace period)</td>");479 out.write(" <tdalign=\"center\">" + cfg.getProcessedMessagesCount() + "KB</td>");476 out.write(" <td class=\"cells\" align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>"); 477 else 478 out.write(" <td class=\"cells\" align=\"center\">(grace period)</td>"); 479 out.write(" <td class=\"cells\" align=\"center\">" + cfg.getProcessedMessagesCount() + "KB</td>"); 480 480 int lifetime = (int) ((_context.clock().now() - cfg.getCreation()) / 1000); 481 481 if (lifetime <= 0) … … 484 484 lifetime = 10*60; 485 485 int bps = 1024 * (int) cfg.getProcessedMessagesCount() / lifetime; 486 out.write(" <tdalign=\"center\">" + bps + "Bps</td>");486 out.write(" <td class=\"cells\" align=\"center\">" + bps + "Bps</td>"); 487 487 if (cfg.getSendTo() == null) 488 out.write(" <tdalign=\"center\">Outbound Endpoint</td>");488 out.write(" <td class=\"cells\" align=\"center\">Outbound Endpoint</td>"); 489 489 else if (cfg.getReceiveFrom() == null) 490 out.write(" <tdalign=\"center\">Inbound Gateway</td>");491 else 492 out.write(" <tdalign=\"center\">Participant</td>");490 out.write(" <td class=\"cells\" align=\"center\">Inbound Gateway</td>"); 491 else 492 out.write(" <td class=\"cells\" align=\"center\">Participant</td>"); 493 493 out.write("</tr>\n"); 494 494 processed += cfg.getProcessedMessagesCount(); … … 544 544 live++; 545 545 if (info.isInbound()) 546 out.write("<tr> <tdalign=\"center\"><img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/></td>");547 else 548 out.write("<tr> <tdalign=\"center\"><img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/></td>");549 out.write(" <tdalign=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>\n");550 out.write(" <tdalign=\"center\">" + info.getProcessedMessagesCount() + "KB</td>\n");546 out.write("<tr> <td class=\"cells\" align=\"center\"><img src=\"/themes/console/images/inbound.png\" alt=\"Inbound\" title=\"Inbound\"/></td>"); 547 else 548 out.write("<tr> <td class=\"cells\" align=\"center\"><img src=\"/themes/console/images/outbound.png\" alt=\"Outbound\" title=\"Outbound\"/></td>"); 549 out.write(" <td class=\"cells\" align=\"center\">" + DataHelper.formatDuration(timeLeft) + "</td>\n"); 550 out.write(" <td class=\"cells\" align=\"center\">" + info.getProcessedMessagesCount() + "KB</td>\n"); 551 551 for (int j = 0; j < info.getLength(); j++) { 552 552 Hash peer = info.getPeer(j); 553 553 TunnelId id = (info.isInbound() ? info.getReceiveTunnelId(j) : info.getSendTunnelId(j)); 554 554 if (_context.routerHash().equals(peer)) { 555 out.write(" <tdalign=\"center\">" + (id == null ? "" : "" + id) + "</td>");555 out.write(" <td class=\"cells\" align=\"center\">" + (id == null ? "" : "" + id) + "</td>"); 556 556 } else { 557 557 String cap = getCapacity(peer); 558 out.write(" <tdalign=\"center\">" + netDbLink(peer) + (id == null ? "" : " " + id) + cap + "</td>");558 out.write(" <td class=\"cells\" align=\"center\">" + netDbLink(peer) + (id == null ? "" : " " + id) + cap + "</td>"); 559 559 } 560 560 if (info.getLength() < maxLength && (info.getLength() == 1 || j == info.getLength() - 2)) { 561 561 for (int k = info.getLength(); k < maxLength; k++) 562 out.write(" <tdalign=\"center\"> </td>");562 out.write(" <td class=\"cells\" align=\"center\"> </td>"); 563 563 } 564 564 } … … 606 606 out.write("<table><tr><th>Peer</th><th>Expl. + Client</th><th>% of total</th><th>Part. from + to</th><th>% of total</th></tr>\n"); 607 607 for (Hash h : peerList) { 608 out.write("<tr> <tdalign=\"center\">");608 out.write("<tr> <td class=\"cells\" align=\"center\">"); 609 609 out.write(netDbLink(h)); 610 out.write(" <tdalign=\"center\">" + lc.count(h));611 out.write(" <tdalign=\"center\">");610 out.write(" <td class=\"cells\" align=\"center\">" + lc.count(h)); 611 out.write(" <td class=\"cells\" align=\"center\">"); 612 612 if (tunnelCount > 0) 613 613 out.write("" + (lc.count(h) * 100 / tunnelCount)); 614 614 else 615 615 out.write('0'); 616 out.write(" <tdalign=\"center\">" + pc.count(h));617 out.write(" <tdalign=\"center\">");616 out.write(" <td class=\"cells\" align=\"center\">" + pc.count(h)); 617 out.write(" <td class=\"cells\" align=\"center\">"); 618 618 if (partCount > 0) 619 619 out.write("" + (pc.count(h) * 100 / partCount)); … … 622 622 out.write('\n'); 623 623 } 624 out.write("<tr ><td align=\"center\"><b>Tunnels</b><td align=\"center\"><b>" + tunnelCount);625 out.write("</b> <td> </td><td align=\"center\"><b>" + partCount);626 out.write("</b> <td> </td></tr></table>\n");624 out.write("<tr class=\"tablefooter\"> <td align=\"center\"><b>Tunnels</b> <td align=\"center\"><b>" + tunnelCount); 625 out.write("</b> <td> </td> <td align=\"center\"><b>" + partCount); 626 out.write("</b> <td> </td></tr></table>\n"); 627 627 } 628 628
Note: See TracChangeset
for help on using the changeset viewer.