Author: zothar
Date: 2008-01-06 22:51:49 +0000 (Sun, 06 Jan 2008)
New Revision: 16954
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Implement processing of received differential node references. It may be a bit
before I get sending implemented.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-01-06 22:09:51 UTC (rev
16953)
+++ trunk/freenet/src/freenet/node/Node.java 2008-01-06 22:51:49 UTC (rev
16954)
@@ -2576,8 +2576,20 @@
throw new Error(e);
}
} else if(type == Node.N2N_MESSAGE_TYPE_DIFFNODEREF) {
- // FIXME: Not yet implemented
Logger.normal(this, "Received differential node
reference node to node message from "+src.getPeer());
+ SimpleFieldSet fs = null;
+ try {
+ fs = new SimpleFieldSet(new
String(messageData.getData(), "UTF-8"), false, true);
+ } catch (IOException e) {
+ Logger.error(this, "IOException while parsing
node to node message data", e);
+ return;
+ }
+ try {
+ src.processDiffNoderef(fs);
+ } catch (FSParseException e) {
+ Logger.error(this, "FSParseException while
parsing node to node message data", e);
+ return;
+ }
} else {
Logger.error(this, "Received unknown node to node
message type '"+type+"' from "+src.getPeer());
}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2008-01-06 22:09:51 UTC
(rev 16953)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2008-01-06 22:51:49 UTC
(rev 16954)
@@ -1934,6 +1934,14 @@
}
/**
+ * Process a differential node reference
+ * The identity must not change, or we throw.
+ */
+ public void processDiffNoderef(SimpleFieldSet fs) throws
FSParseException {
+ processNewNoderef(fs, false, true);
+ }
+
+ /**
* Process a new nodereference, in compressed form.
* The identity must not change, or we throw.
*/