Author: zothar
Date: 2006-06-25 19:51:15 +0000 (Sun, 25 Jun 2006)
New Revision: 9386
Added:
trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
trunk/freenet/src/freenet/node/fcp/Peer.java
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/fcp/FCPMessage.java
Log:
841: Add support for ListPeers client-to-node FCP message.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-06-25 05:49:58 UTC (rev
9385)
+++ trunk/freenet/src/freenet/node/Node.java 2006-06-25 19:51:15 UTC (rev
9386)
@@ -3311,4 +3311,8 @@
nextPeerManagerUserAlertStatsUpdateTime = now +
peerManagerUserAlertStatsUpdateInterval;
}
}
+ public PeerNode[] getPeerNodes() {
+ PeerManager pm = peers;
+ return pm.myPeers;
+ }
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-25 05:49:58 UTC (rev
9385)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-25 19:51:15 UTC (rev
9386)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 840;
+ private static final int buildNumber = 841;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 839;
Added: trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2006-06-25
05:49:58 UTC (rev 9385)
+++ trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2006-06-25
19:51:15 UTC (rev 9386)
@@ -0,0 +1,23 @@
+package freenet.node.fcp;
+
+import freenet.node.Node;
+import freenet.support.SimpleFieldSet;
+
+public class EndListPeersMessage extends FCPMessage {
+
+ static final String name = "EndListPeers";
+
+ public SimpleFieldSet getFieldSet() {
+ return new SimpleFieldSet(true);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void run(FCPConnectionHandler handler, Node node)
+ throws MessageInvalidException {
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "EndListPeers
goes from server to client not the other way around", null);
+ }
+
+}
Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2006-06-25 05:49:58 UTC
(rev 9385)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2006-06-25 19:51:15 UTC
(rev 9386)
@@ -38,6 +38,8 @@
return new ClientPutMessage(fs);
if(name.equals(GenerateSSKMessage.name))
return new GenerateSSKMessage(fs);
+ if(name.equals(ListPeersMessage.name))
+ return new ListPeersMessage(fs);
if(name.equals(ListPersistentRequestsMessage.name))
return new ListPersistentRequestsMessage(fs);
if(name.equals(RemovePersistentRequest.name))
Added: trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2006-06-25
05:49:58 UTC (rev 9385)
+++ trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2006-06-25
19:51:15 UTC (rev 9386)
@@ -0,0 +1,35 @@
+package freenet.node.fcp;
+
+import freenet.node.Node;
+import freenet.node.PeerNode;
+import freenet.support.Fields;
+import freenet.support.SimpleFieldSet;
+
+public class ListPeersMessage extends FCPMessage {
+
+ final boolean withMetadata;
+ static final String name = "ListPeers";
+
+ public ListPeersMessage(SimpleFieldSet fs) {
+ withMetadata = Fields.stringToBool(fs.get("WithMetadata"),
false);
+ }
+
+ public SimpleFieldSet getFieldSet() {
+ return new SimpleFieldSet(false);
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void run(FCPConnectionHandler handler, Node node)
+ throws MessageInvalidException {
+ 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 EndListPeersMessage());
+ }
+
+}
Added: trunk/freenet/src/freenet/node/fcp/Peer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/Peer.java 2006-06-25 05:49:58 UTC
(rev 9385)
+++ trunk/freenet/src/freenet/node/fcp/Peer.java 2006-06-25 19:51:15 UTC
(rev 9386)
@@ -0,0 +1,42 @@
+package freenet.node.fcp;
+
+import java.io.File;
+
+import freenet.keys.FreenetURI;
+import freenet.node.Node;
+import freenet.node.PeerNode;
+import freenet.support.SimpleFieldSet;
+
+public class Peer extends FCPMessage {
+
+ static final String name = "Peer";
+
+ final PeerNode pn;
+ final boolean withMetadata;
+
+ public Peer(PeerNode pn, boolean withMetadata) {
+ this.pn = pn;
+ this.withMetadata = withMetadata;
+ }
+
+ public SimpleFieldSet getFieldSet() {
+ SimpleFieldSet fs = pn.exportFieldSet();
+ if(withMetadata) {
+ SimpleFieldSet meta = pn.exportMetadataFieldSet();
+ if(!meta.isEmpty()) {
+ fs.put("metadata", meta);
+ }
+ }
+ return fs;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void run(FCPConnectionHandler handler, Node node)
+ throws MessageInvalidException {
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "Peer goes from
server to client not the other way around", null);
+ }
+
+}