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);
+ }
}