Author: zothar
Date: 2006-06-30 00:58:15 +0000 (Fri, 30 Jun 2006)
New Revision: 9408
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
trunk/freenet/src/freenet/node/fcp/Peer.java
Log:
Added volatile data capability to ListPeers client-to-node FCP reqest.
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-06-29 23:01:29 UTC
(rev 9407)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-06-30 00:58:15 UTC
(rev 9408)
@@ -1495,6 +1495,29 @@
return fs;
}
+ /**
+ * Export volatile data about the node as a SimpleFieldSet
+ */
+ public SimpleFieldSet exportVolatileFieldSet() {
+ SimpleFieldSet fs = new SimpleFieldSet(true);
+ fs.put("averagePingTime", Double.toString(averagePingTime()));
+ long now = System.currentTimeMillis();
+ long idle = now - lastReceivedPacketTime();
+ if(idle > (60 * 1000)) { // 1 minute
+ fs.put("idle", Long.toString(idle));
+ }
+ fs.put("lastRoutingBackoffReason", getLastBackoffReason());
+ long peerAddedTime = getPeerAddedTime();
+ if(peerAddedTime > 1) {
+ fs.put("peerAddedTime", Long.toString(peerAddedTime));
+ }
+ fs.put("routingBackoffPercent",
Double.toString(backedOffPercent.currentValue() * 100));
+ fs.put("routingBackoff",
Long.toString((Math.max(routingBackedOffUntil - now, 0))));
+ fs.put("routingBackoffLength",
Integer.toString(getRoutingBackoffLength()));
+ fs.put("status", getPeerNodeStatusString());
+ return fs;
+ }
+
/**
* Export the peer's noderef as a SimpleFieldSet
*/
@@ -1603,7 +1626,7 @@
/** Previous backoff reason (used by setPeerNodeStatus)*/
String previousRoutingBackoffReason = null;
/* percent of time this peer is backedoff */
- public RunningAverage backedOffPercent = new
TimeDecayingRunningAverage(0.0, 180000, 0.0, 1.0);
+ public RunningAverage backedOffPercent = new
TimeDecayingRunningAverage(0.0, 180000, 0.0, 1.0);
/* time of last sample */
private long lastSampleTime = Long.MAX_VALUE;
Modified: trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2006-06-29
23:01:29 UTC (rev 9407)
+++ trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2006-06-30
00:58:15 UTC (rev 9408)
@@ -8,10 +8,12 @@
public class ListPeersMessage extends FCPMessage {
final boolean withMetadata;
+ final boolean withVolatile;
static final String name = "ListPeers";
public ListPeersMessage(SimpleFieldSet fs) {
withMetadata = Fields.stringToBool(fs.get("WithMetadata"),
false);
+ withVolatile = Fields.stringToBool(fs.get("WithVolatile"),
false);
}
public SimpleFieldSet getFieldSet() {
@@ -27,7 +29,7 @@
PeerNode[] nodes = node.getPeerNodes();
for(int i = 0; i < nodes.length; i++) {
PeerNode pn = nodes[i];
- handler.outputHandler.queue(new Peer(pn, withMetadata));
+ handler.outputHandler.queue(new Peer(pn, withMetadata,
withVolatile));
}
handler.outputHandler.queue(new EndListPeersMessage());
}
Modified: trunk/freenet/src/freenet/node/fcp/Peer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/Peer.java 2006-06-29 23:01:29 UTC
(rev 9407)
+++ trunk/freenet/src/freenet/node/fcp/Peer.java 2006-06-30 00:58:15 UTC
(rev 9408)
@@ -13,10 +13,12 @@
final PeerNode pn;
final boolean withMetadata;
+ final boolean withVolatile;
- public Peer(PeerNode pn, boolean withMetadata) {
+ public Peer(PeerNode pn, boolean withMetadata, boolean withVolatile) {
this.pn = pn;
this.withMetadata = withMetadata;
+ this.withVolatile = withVolatile;
}
public SimpleFieldSet getFieldSet() {
@@ -27,6 +29,12 @@
fs.put("metadata", meta);
}
}
+ if(withVolatile) {
+ SimpleFieldSet vol = pn.exportVolatileFieldSet();
+ if(!vol.isEmpty()) {
+ fs.put("volatile", vol);
+ }
+ }
return fs;
}