Author: toad
Date: 2008-04-05 15:26:51 +0000 (Sat, 05 Apr 2008)
New Revision: 19038
Modified:
trunk/freenet/src/freenet/node/fcp/EndListPeerNotesMessage.java
trunk/freenet/src/freenet/node/fcp/GetNode.java
trunk/freenet/src/freenet/node/fcp/ListPeerNotesMessage.java
trunk/freenet/src/freenet/node/fcp/ModifyPeerNote.java
trunk/freenet/src/freenet/node/fcp/NodeData.java
trunk/freenet/src/freenet/node/fcp/PeerNote.java
Log:
Peer Notes, GetNode etc.
Modified: trunk/freenet/src/freenet/node/fcp/EndListPeerNotesMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/EndListPeerNotesMessage.java
2008-04-05 15:21:11 UTC (rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/EndListPeerNotesMessage.java
2008-04-05 15:26:51 UTC (rev 19038)
@@ -10,14 +10,18 @@
final String nodeIdentifier;
static final String name = "EndListPeerNotes";
+ private String identifier;
- public EndListPeerNotesMessage(String id) {
+ public EndListPeerNotesMessage(String id, String identifier) {
this.nodeIdentifier = id;
+ this.identifier = identifier;
}
public SimpleFieldSet getFieldSet() {
SimpleFieldSet sfs = new SimpleFieldSet(true);
sfs.putSingle("NodeIdentifier", nodeIdentifier);
+ if(identifier != null)
+ sfs.putSingle("Identifier", identifier);
return sfs;
}
Modified: trunk/freenet/src/freenet/node/fcp/GetNode.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/GetNode.java 2008-04-05 15:21:11 UTC
(rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/GetNode.java 2008-04-05 15:26:51 UTC
(rev 19038)
@@ -13,15 +13,21 @@
final boolean withPrivate;
final boolean withVolatile;
static final String NAME = "GetNode";
+ final String identifier;
public GetNode(SimpleFieldSet fs) {
giveOpennetRef = Fields.stringToBool(fs.get("GiveOpennetRef"),
false);
withPrivate = Fields.stringToBool(fs.get("WithPrivate"), false);
withVolatile = Fields.stringToBool(fs.get("WithVolatile"),
false);
+ identifier = fs.get("Identifier");
+ fs.removeValue("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() {
@@ -31,9 +37,9 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "GetNode requires
full access", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "GetNode requires
full access", identifier, false);
}
- handler.outputHandler.queue(new NodeData(node, giveOpennetRef,
withPrivate, withVolatile));
+ handler.outputHandler.queue(new NodeData(node, giveOpennetRef,
withPrivate, withVolatile, identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/ListPeerNotesMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ListPeerNotesMessage.java
2008-04-05 15:21:11 UTC (rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/ListPeerNotesMessage.java
2008-04-05 15:26:51 UTC (rev 19038)
@@ -12,9 +12,12 @@
static final String NAME = "ListPeerNotes";
final SimpleFieldSet fs;
+ final String identifier;
public ListPeerNotesMessage(SimpleFieldSet fs) {
this.fs = fs;
+ this.identifier = fs.get("Identifier");
+ fs.removeValue("Identifier");
}
public SimpleFieldSet getFieldSet() {
@@ -28,11 +31,11 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeerNotes
requires full access", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ListPeerNotes
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) {
@@ -41,13 +44,13 @@
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;
// **FIXME** this should be generalized for multiple peer notes
per peer, after PeerNode is similarly generalized
String noteText = dpn.getPrivateDarknetCommentNote();
- handler.outputHandler.queue(new PeerNote(nodeIdentifier,
noteText, Node.PEER_NOTE_TYPE_PRIVATE_DARKNET_COMMENT));
- handler.outputHandler.queue(new
EndListPeerNotesMessage(nodeIdentifier));
+ handler.outputHandler.queue(new PeerNote(nodeIdentifier,
noteText, Node.PEER_NOTE_TYPE_PRIVATE_DARKNET_COMMENT, identifier));
+ handler.outputHandler.queue(new
EndListPeerNotesMessage(nodeIdentifier, identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/ModifyPeerNote.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ModifyPeerNote.java 2008-04-05
15:21:11 UTC (rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/ModifyPeerNote.java 2008-04-05
15:26:51 UTC (rev 19038)
@@ -17,9 +17,12 @@
static final String NAME = "ModifyPeerNote";
final SimpleFieldSet fs;
+ final String identifier;
public ModifyPeerNote(SimpleFieldSet fs) {
this.fs = fs;
+ identifier = fs.get("Identifier");
+ fs.removeValue("Identifier");
}
public SimpleFieldSet getFieldSet() {
@@ -32,11 +35,11 @@
public void run(FCPConnectionHandler handler, Node node) throws
MessageInvalidException {
if(!handler.hasFullAccess()) {
- throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeerNote
requires full access", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.ACCESS_DENIED, "ModifyPeerNote
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) {
@@ -45,18 +48,18 @@
return;
}
if(!(pn instanceof DarknetPeerNode)) {
- throw new
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeerNote only
available for darknet peers", fs.get("Identifier"), false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.DARKNET_ONLY, "ModifyPeerNote only
available for darknet peers", identifier, false);
}
DarknetPeerNode dpn = (DarknetPeerNode) pn;
int peerNoteType;
try {
peerNoteType = fs.getInt("PeerNoteType");
} catch (FSParseException e) {
- throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_FIELD, "Error parsing
PeerNoteType field: "+e.getMessage(), null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_FIELD, "Error parsing
PeerNoteType field: "+e.getMessage(), identifier, false);
}
String encodedNoteText = fs.get("NoteText");
if( encodedNoteText == null ) {
- throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NoteText
field missing", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.MISSING_FIELD, "Error: NoteText
field missing", identifier, false);
}
String noteText;
// **FIXME** this should be generalized for multiple peer notes
per peer, after PeerNode is similarly generalized
@@ -73,7 +76,7 @@
handler.outputHandler.queue(msg);
return;
}
- handler.outputHandler.queue(new PeerNote(nodeIdentifier,
noteText, peerNoteType));
+ handler.outputHandler.queue(new PeerNote(nodeIdentifier,
noteText, peerNoteType, identifier));
}
}
Modified: trunk/freenet/src/freenet/node/fcp/NodeData.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/NodeData.java 2008-04-05 15:21:11 UTC
(rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/NodeData.java 2008-04-05 15:26:51 UTC
(rev 19038)
@@ -13,12 +13,14 @@
final boolean giveOpennetRef;
final boolean withPrivate;
final boolean withVolatile;
+ final String identifier;
- public NodeData(Node node, boolean giveOpennetRef, boolean withPrivate,
boolean withVolatile) {
+ public NodeData(Node node, boolean giveOpennetRef, boolean withPrivate,
boolean withVolatile, String identifier) {
this.node = node;
this.giveOpennetRef = giveOpennetRef;
this.withPrivate = withPrivate;
this.withVolatile = withVolatile;
+ this.identifier = identifier;
}
public SimpleFieldSet getFieldSet() {
@@ -42,6 +44,8 @@
fs.put("volatile", vol);
}
}
+ if(identifier != null)
+ fs.putSingle("Identifier", identifier);
return fs;
}
@@ -51,7 +55,7 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
- throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "NodeData goes
from server to client not the other way around", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "NodeData goes
from server to client not the other way around", identifier, false);
}
}
Modified: trunk/freenet/src/freenet/node/fcp/PeerNote.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PeerNote.java 2008-04-05 15:21:11 UTC
(rev 19037)
+++ trunk/freenet/src/freenet/node/fcp/PeerNote.java 2008-04-05 15:26:51 UTC
(rev 19038)
@@ -15,11 +15,13 @@
final String noteText;
final int peerNoteType;
final String nodeIdentifier;
+ final String identifier;
- public PeerNote(String nodeIdentifier, String noteText, int
peerNoteType) {
+ public PeerNote(String nodeIdentifier, String noteText, int
peerNoteType, String identifier) {
this.nodeIdentifier = nodeIdentifier;
this.noteText = noteText;
this.peerNoteType = peerNoteType;
+ this.identifier = identifier;
}
public SimpleFieldSet getFieldSet() {
@@ -31,6 +33,8 @@
} catch (UnsupportedEncodingException e) {
throw new Error(e);
}
+ if(identifier != null)
+ fs.putSingle("Identifier", identifier);
return fs;
}
@@ -40,7 +44,7 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
- throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "PeerNote goes
from server to client not the other way around", null, false);
+ throw new
MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "PeerNote goes
from server to client not the other way around", identifier, false);
}
}