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