[freenet-cvs] r15435 - trunk/freenet/src/freenet/node

nextgens at freenetproject.org nextgens at freenetproject.org
Sat Oct 6 18:05:48 UTC 2007


Author: nextgens
Date: 2007-10-06 18:05:48 +0000 (Sat, 06 Oct 2007)
New Revision: 15435

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Move jfkNoncesSent to FNPPacketMangler to spare some memory; add a comment on what it does; synchronize access (maybe overkill... tell me if it is)

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java	2007-10-06 17:56:02 UTC (rev 15434)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java	2007-10-06 18:05:48 UTC (rev 15435)
@@ -122,6 +122,11 @@
 
 	final int fullHeadersLengthMinimum;
 	final int fullHeadersLengthOneMessage;
+	/**
+	 *  The initiator has to ensure that nonces send back by the
+	 *  responder in message2 match what was chosen in message 1
+	 */
+	protected final HashMap jfkNoncesSent = new HashMap();
 
 
 	public FNPPacketMangler(Node node, NodeCrypto crypt, PacketSocketHandler sock) {
@@ -512,7 +517,9 @@
 		byte[] nonce = new byte[NONCE_SIZE];
 		node.random.nextBytes(nonce);
 		
-		pn.jfkNonceInitiator.put(replyTo, nonce);
+		synchronized (jfkNoncesSent) {
+			jfkNoncesSent.put(replyTo, nonce);
+		}
 		
 		byte[] message1 = new byte[NONCE_SIZE+DiffieHellman.modulusLengthInBytes()];
 
@@ -648,7 +655,10 @@
 		}
 		
 		// sanity check
-		byte[] myNi = (byte[]) pn.jfkNonceInitiator.get(replyTo);
+		byte[] myNi = null;
+		synchronized (jfkNoncesSent) {
+			myNi = (byte[]) jfkNoncesSent.get(replyTo);
+		}
 		// We don't except such a message;
 		if(myNi == null) {
 			Logger.normal(this, "We received an unexpected JFK(3) message from "+pn);
@@ -973,7 +983,9 @@
 		pn.jfkKa = null;
 		pn.jfkKe = null;
 		pn.jfkKs = null;
-		pn.jfkNonceInitiator.clear();
+		synchronized (jfkNoncesSent) {
+			jfkNoncesSent.remove(pn);
+		}
 		
 		final long t2=System.currentTimeMillis();
 		if((t2-t1)>500)

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java	2007-10-06 17:56:02 UTC (rev 15434)
+++ trunk/freenet/src/freenet/node/PeerNode.java	2007-10-06 18:05:48 UTC (rev 15435)
@@ -11,7 +11,6 @@
 import java.net.MalformedURLException;
 import java.net.UnknownHostException;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -95,7 +94,6 @@
     protected byte[] jfkKa;
     protected byte[] jfkKe;
     protected byte[] jfkKs;
-    protected final HashMap jfkNonceInitiator = new HashMap();
     protected byte[] jfkMyRef;
 	
     /** My low-level address for SocketManager purposes */




More information about the cvs mailing list