Author: toad
Date: 2008-04-05 15:15:58 +0000 (Sat, 05 Apr 2008)
New Revision: 19035
Modified:
trunk/freenet/src/freenet/node/fcp/AddPeer.java
trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
trunk/freenet/src/freenet/node/fcp/PeerMessage.java
Log:
Support optional Identifier on all FCP Peer operations
Modified: trunk/freenet/src/freenet/node/fcp/AddPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/AddPeer.java 2008-04-05 15:11:32 UTC
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/AddPeer.java 2008-04-05 15:15:58 UTC
(rev 19035)
@@ -152,7 +152,7 @@
}
System.out.println("Added darknet peer: "+pn);
}
- handler.outputHandler.queue(new PeerMessage(pn, true, true));
+ handler.outputHandler.queue(new PeerMessage(pn, true, true,
identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2008-04-05
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/EndListPeersMessage.java 2008-04-05
15:15:58 UTC (rev 19035)
@@ -9,9 +9,17 @@
public class EndListPeersMessage extends FCPMessage {
static final String name = "EndListPeers";
+ private final String identifier;
+ public EndListPeersMessage(String identifier) {
+ this.identifier = identifier;
+ }
+
public SimpleFieldSet getFieldSet() {
- return new SimpleFieldSet(true);
+ SimpleFieldSet fs = new SimpleFieldSet(true);
+ if(identifier != null)
+ fs.putSingle("Identifier", identifier);
+ return fs;
}
public String getName() {
Modified: trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java 2008-04-05
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ListPeerMessage.java 2008-04-05
15:15:58 UTC (rev 19035)
@@ -12,9 +12,12 @@
static final String NAME = "ListPeer";
final SimpleFieldSet fs;
+ final String identifier;
public ListPeerMessage(SimpleFieldSet fs) {
this.fs = fs;
+ this.identifier = fs.get("Identifier");
+ fs.removeValue("Identifier");
}
public SimpleFieldSet getFieldSet() {
@@ -27,11 +30,11 @@
public void run(FCPConnectionHandler handler, Node node) throws
MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeer requires
full access", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeer requires
full access", identifier, false);
}
String nodeIdentifier = fs.get("NodeIdentifier");
if( nodeIdentifier == null ) {
- throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error:
NodeIdentifier field missing", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error:
NodeIdentifier field missing", identifier, false);
}
PeerNode pn = node.getPeerNode(nodeIdentifier);
if(pn == null) {
@@ -39,7 +42,7 @@
handler.outputHandler.queue(msg);
return;
}
- handler.outputHandler.queue(new PeerMessage(pn, true, true));
+ handler.outputHandler.queue(new PeerMessage(pn, true, true,
identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2008-04-05
15:11:32 UTC (rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ListPeersMessage.java 2008-04-05
15:15:58 UTC (rev 19035)
@@ -12,11 +12,14 @@
final boolean withMetadata;
final boolean withVolatile;
+ final String identifier;
static final String NAME = "ListPeers";
public ListPeersMessage(SimpleFieldSet fs) {
withMetadata = Fields.stringToBool(fs.get("WithMetadata"),
false);
withVolatile = Fields.stringToBool(fs.get("WithVolatile"),
false);
+ this.identifier = fs.get("Identifier");
+ fs.removeValue("Identifier");
}
public SimpleFieldSet getFieldSet() {
@@ -30,15 +33,15 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeers requires
full access", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeers requires
full access", identifier, false);
}
PeerNode[] nodes = node.getPeerNodes();
for(int i = 0; i < nodes.length; i++) {
PeerNode pn = nodes[i];
- handler.outputHandler.queue(new PeerMessage(pn,
withMetadata, withVolatile));
+ handler.outputHandler.queue(new PeerMessage(pn,
withMetadata, withVolatile, identifier));
}
- handler.outputHandler.queue(new EndListPeersMessage());
+ handler.outputHandler.queue(new
EndListPeersMessage(identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/ModifyPeer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ModifyPeer.java 2008-04-05 15:11:32 UTC
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/ModifyPeer.java 2008-04-05 15:15:58 UTC
(rev 19035)
@@ -14,9 +14,12 @@
static final String NAME = "ModifyPeer";
final SimpleFieldSet fs;
+ final String identifier;
public ModifyPeer(SimpleFieldSet fs) {
this.fs = fs;
+ this.identifier = fs.get("Identifier");
+ fs.removeValue("Identifier");
}
public SimpleFieldSet getFieldSet() {
@@ -29,11 +32,11 @@
public void run(FCPConnectionHandler handler, Node node) throws
MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeer
requires full access", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeer
requires full access", identifier, false);
}
String nodeIdentifier = fs.get("NodeIdentifier");
if( nodeIdentifier == null ) {
- throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error:
NodeIdentifier field missing", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error:
NodeIdentifier field missing", identifier, false);
}
PeerNode pn = node.getPeerNode(nodeIdentifier);
if(pn == null) {
@@ -42,7 +45,7 @@
return;
}
if(!(pn instanceof DarknetPeerNode)) {
- throw new
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeer only
available for darknet peers", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeer only
available for darknet peers", identifier, false);
}
DarknetPeerNode dpn = (DarknetPeerNode) pn;
String isDisabledString = fs.get("IsDisabled");
@@ -79,7 +82,7 @@
dpn.setAllowLocalAddresses(Fields.stringToBool(allowLocalAddressesString,
false));
}
}
- handler.outputHandler.queue(new PeerMessage(pn, true, true));
+ handler.outputHandler.queue(new PeerMessage(pn, true, true,
identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/PeerMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PeerMessage.java 2008-04-05 15:11:32 UTC
(rev 19034)
+++ trunk/freenet/src/freenet/node/fcp/PeerMessage.java 2008-04-05 15:15:58 UTC
(rev 19035)
@@ -13,11 +13,13 @@
final PeerNode pn;
final boolean withMetadata;
final boolean withVolatile;
+ final String identifier;
- public PeerMessage(PeerNode pn, boolean withMetadata, boolean
withVolatile) {
+ public PeerMessage(PeerNode pn, boolean withMetadata, boolean
withVolatile, String identifier) {
this.pn = pn;
this.withMetadata = withMetadata;
this.withVolatile = withVolatile;
+ this.identifier = identifier;
}
public SimpleFieldSet getFieldSet() {
@@ -34,6 +36,8 @@
fs.put("volatile", vol);
}
}
+ if(identifier != null)
+ fs.putSingle("Identifier", identifier);
return fs;
}