Author: robert
Date: 2008-02-08 20:49:23 +0000 (Fri, 08 Feb 2008)
New Revision: 17722

Modified:
   trunk/freenet/src/freenet/io/comm/DMT.java
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
remember our peer's network-id if they happen to tell us


Modified: trunk/freenet/src/freenet/io/comm/DMT.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/DMT.java  2008-02-08 20:47:49 UTC (rev 
17721)
+++ trunk/freenet/src/freenet/io/comm/DMT.java  2008-02-08 20:49:23 UTC (rev 
17722)
@@ -1218,6 +1218,16 @@
                return msg;
        }

+       public static final MessageType FNPNetworkID = new 
MessageType("FNPNetworkID", PRIORITY_LOW) {{
+               addField(UID, Integer.class);
+       }};
+       
+       public static final Message createFNPNetworkID(int id) {
+               Message msg = new Message(FNPNetworkID);
+               msg.set(UID, id);
+               return msg;
+       }
+       
        public static final MessageType FNPRoutedRejected = new 
MessageType("FNPRoutedRejected", PRIORITY_UNSPECIFIED) {{
                addField(UID, Long.class);
                addField(HTL, Short.class);

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-02-08 20:47:49 UTC 
(rev 17721)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-02-08 20:49:23 UTC 
(rev 17722)
@@ -126,6 +126,9 @@
                        double newLoc = m.getDouble(DMT.LOCATION);
                        source.updateLocation(newLoc);
                        return true;
+               } else if(spec == DMT.FNPNetworkID) {
+                       source.handleFNPNetworkID(m);
+                       return true;
                } else if(spec == DMT.FNPSwapRequest) {
                        return node.lm.handleSwapRequest(m, source);
                } else if(spec == DMT.FNPSwapReply) {

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2008-02-08 20:47:49 UTC 
(rev 17721)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2008-02-08 20:49:23 UTC 
(rev 17722)
@@ -3561,4 +3561,18 @@
                        if(logMINOR) Logger.minor(this, "fs is empty");
                }
        }
+       
+       int assignedNetworkID;
+       int providedNetworkID;
+       
+       void handleFNPNetworkID(Message m) {
+               int got=m.getInt(DMT.UID);
+               if (logMINOR) Logger.minor(this, "now peer thinks he is in 
network "+got);
+               providedNetworkID=got;
+       }
+       
+       void sendFNPNetworkID() throws NotConnectedException {
+               if (assignedNetworkID!=0)
+                       sendAsync(DMT.createFNPNetworkID(assignedNetworkID), 
null, 0, null);
+       }
 }


Reply via email to