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.
        */


Reply via email to