Author: toad
Date: 2007-12-13 23:21:52 +0000 (Thu, 13 Dec 2007)
New Revision: 16514
Modified:
trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
trunk/freenet/src/freenet/node/PeerNodeStatus.java
Log:
List seeding nodes and seednodes on the stats page.
Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
2007-12-13 23:12:18 UTC (rev 16513)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
2007-12-13 23:21:52 UTC (rev 16514)
@@ -104,7 +104,23 @@
}
return count;
}
+
+ private int getCountSeedServers(PeerNodeStatus[] peerNodeStatuses) {
+ int count = 0;
+ for(int peerIndex = 0; peerIndex < peerNodeStatuses.length;
peerIndex++) {
+ if(peerNodeStatuses[peerIndex].isSeedServer()) count++;
+ }
+ return count;
+ }
+ private int getCountSeedClients(PeerNodeStatus[] peerNodeStatuses) {
+ int count = 0;
+ for(int peerIndex = 0; peerIndex < peerNodeStatuses.length;
peerIndex++) {
+ if(peerNodeStatuses[peerIndex].isSeedClient()) count++;
+ }
+ return count;
+ }
+
public void handleGet(URI uri, HTTPRequest request, ToadletContext ctx)
throws ToadletContextClosedException, IOException, RedirectException {
if(!ctx.isAllowedFullAccess()) {
@@ -139,6 +155,8 @@
int numberOfBursting = getPeerStatusCount(peerNodeStatuses,
PeerManager.PEER_NODE_STATUS_BURSTING);
int numberOfListening = getPeerStatusCount(peerNodeStatuses,
PeerManager.PEER_NODE_STATUS_LISTENING);
int numberOfListenOnly = getPeerStatusCount(peerNodeStatuses,
PeerManager.PEER_NODE_STATUS_LISTEN_ONLY);
+ int numberOfSeedServers = getCountSeedServers(peerNodeStatuses);
+ int numberOfSeedClients = getCountSeedClients(peerNodeStatuses);
HTMLNode pageNode =
ctx.getPageMaker().getPageNode(l10n("fullTitle", new String[] { "name" }, new
String[] { node.getMyName() }), ctx);
HTMLNode contentNode =
ctx.getPageMaker().getContentNode(pageNode);
@@ -236,7 +254,7 @@
drawPeerStatsBox(peerStatsInfobox, advancedModeEnabled,
numberOfConnected, numberOfRoutingBackedOff,
numberOfTooNew, numberOfTooOld,
numberOfDisconnected, numberOfNeverConnected, numberOfDisabled,
- numberOfBursting, numberOfListening,
numberOfListenOnly);
+ numberOfBursting, numberOfListening,
numberOfListenOnly, numberOfSeedServers, numberOfSeedClients);
// Bandwidth box
HTMLNode bandwidthInfobox =
nextTableCell.addChild("div", "class", "infobox");
@@ -567,7 +585,7 @@
private void drawPeerStatsBox(HTMLNode peerStatsInfobox, boolean
advancedModeEnabled, int numberOfConnected,
int numberOfRoutingBackedOff, int numberOfTooNew, int
numberOfTooOld, int numberOfDisconnected,
int numberOfNeverConnected, int numberOfDisabled, int
numberOfBursting, int numberOfListening,
- int numberOfListenOnly) {
+ int numberOfListenOnly, int numberOfSeedServers, int
numberOfSeedClients) {
peerStatsInfobox.addChild("div", "class", "infobox-header",
l10n("peerStatsTitle"));
HTMLNode peerStatsContent = peerStatsInfobox.addChild("div",
"class", "infobox-content");
@@ -633,7 +651,18 @@
new String[] { "peer_listen_only",
l10nDark("listenOnly"), "border-bottom: 1px dotted; cursor: help;" },
l10nDark("listenOnlyShort"));
peerStatsListenOnlyListItem.addChild("span", ":\u00a0"
+ numberOfListenOnly);
}
-
+ if (numberOfSeedServers > 0) {
+ HTMLNode peerStatsSeedServersListItem =
peerStatsList.addChild("li").addChild("span");
+ peerStatsSeedServersListItem.addChild("span", new
String[] { "class", "title", "style" },
+ new String[] { "peer_listening" /*
FIXME */, l10nDark("seedServers"), "border-bottom: 1px dotted; cursor: help;"
}, l10nDark("seedServersShort"));
+ peerStatsSeedServersListItem.addChild("span", ":\u00a0"
+ numberOfSeedServers);
+ }
+ if (numberOfSeedClients > 0) {
+ HTMLNode peerStatsSeedClientsListItem =
peerStatsList.addChild("li").addChild("span");
+ peerStatsSeedClientsListItem.addChild("span", new
String[] { "class", "title", "style" },
+ new String[] { "peer_listening" /*
FIXME */, l10nDark("seedClients"), "border-bottom: 1px dotted; cursor: help;"
}, l10nDark("seedClientsShort"));
+ peerStatsSeedClientsListItem.addChild("span", ":\u00a0"
+ numberOfSeedClients);
+ }
}
private static String l10n(String key) {
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-12-13
23:12:18 UTC (rev 16513)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-12-13
23:21:52 UTC (rev 16514)
@@ -211,6 +211,10 @@
DarknetConnectionsToadlet.referenceCopyWarning=Node reference must be copied
${bold}AS IS${/bold}. Modifying it will make it ${bold}useless${/bold}.
DarknetConnectionsToadlet.remove=Remove it!
DarknetConnectionsToadlet.removePeers=Remove selected peers
+DarknetConnectionsToadlet.seedClients=Nodes we are using as seednodes.
+DarknetConnectionsToadlet.seedClientsShort=Seed nodes
+DarknetConnectionsToadlet.seedServers=Nodes we are acting as a seednode for.
+DarknetConnectionsToadlet.seedServersShort=Seeding for
DarknetConnectionsToadlet.selectAction=-- Select action --
DarknetConnectionsToadlet.sendMessageTitle=Send Node to Node Text Message
DarknetConnectionsToadlet.sendMessageToPeers=Send N2NTM to selected peers
Modified: trunk/freenet/src/freenet/node/PeerNodeStatus.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNodeStatus.java 2007-12-13 23:12:18 UTC
(rev 16513)
+++ trunk/freenet/src/freenet/node/PeerNodeStatus.java 2007-12-13 23:21:52 UTC
(rev 16514)
@@ -81,6 +81,10 @@
private long clockDelta;
private final boolean recordStatus;
+
+ private final boolean isSeedServer;
+
+ private final boolean isSeedClient;
PeerNodeStatus(PeerNode peerNode) {
Peer p = peerNode.getPeer();
@@ -121,6 +125,8 @@
this.throttle = peerNode.getThrottle();
this.clockDelta = peerNode.getClockDelta();
this.recordStatus = peerNode.recordStatus();
+ this.isSeedClient = peerNode instanceof SeedClientPeerNode;
+ this.isSeedServer = peerNode instanceof SeedServerPeerNode;
}
/**
@@ -343,4 +349,12 @@
public boolean recordStatus() {
return recordStatus;
}
+
+ public boolean isSeedServer() {
+ return isSeedServer;
+ }
+
+ public boolean isSeedClient() {
+ return isSeedClient;
+ }
}