Author: zothar
Date: 2006-06-18 17:35:22 +0000 (Sun, 18 Jun 2006)
New Revision: 9303
Modified:
trunk/freenet/src/freenet/crypt/DiffieHellman.java
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
More time and complaint. A few logging and other minor tweaks.
Modified: trunk/freenet/src/freenet/crypt/DiffieHellman.java
===================================================================
--- trunk/freenet/src/freenet/crypt/DiffieHellman.java 2006-06-18 16:36:39 UTC
(rev 9302)
+++ trunk/freenet/src/freenet/crypt/DiffieHellman.java 2006-06-18 17:35:22 UTC
(rev 9303)
@@ -9,6 +9,7 @@
import java.util.Random;
import java.util.Stack;
+import freenet.support.Logger;
import net.i2p.util.NativeBigInteger;
public class DiffieHellman {
@@ -97,13 +98,18 @@
}
}
- /**
- * Create a DiffieHellmanContext. This will include this side's DH params.
- */
- public static DiffieHellmanContext generateContext() {
- NativeBigInteger[] params = getParams();
- return new DiffieHellmanContext(params[0], params[1], group);
- }
+ /**
+ * Create a DiffieHellmanContext. This will include this side's DH
params.
+ */
+ public static DiffieHellmanContext generateContext() {
+ long time1 = System.currentTimeMillis();
+ NativeBigInteger[] params = getParams();
+ long time2 = System.currentTimeMillis();
+ if((time2 - time1) > 300) {
+ Logger.error(null, "DiffieHellman.generateContext():
time2 is more than 300ms after time1 ("+(time2 - time1)+")");
+ }
+ return new DiffieHellmanContext(params[0], params[1], group);
+ }
public static NativeBigInteger[] getParams() {
synchronized (precalcBuffer) {
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-06-18
16:36:39 UTC (rev 9302)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-06-18
17:35:22 UTC (rev 9303)
@@ -310,6 +310,7 @@
* @param replyTo
*/
private void sendFirstHalfDHPacket(int phase, NativeBigInteger integer,
PeerNode pn, Peer replyTo) {
+ long time1 = System.currentTimeMillis();
Logger.minor(this, "Sending ("+phase+") "+integer.toHexString()+" to
"+pn.getPeer());
byte[] data = integer.toByteArray();
int targetLength = DiffieHellman.modulusLengthInBytes();
@@ -326,19 +327,32 @@
data = newData;
}
Logger.minor(this, "Processed: "+HexUtil.bytesToHex(data));
+ long time2 = System.currentTimeMillis();
+ if((time2 - time1) > 200) {
+ Logger.error(this, "sendFirstHalfDHPacket: time2 is more than 200ms
after time1 ("+(time2 - time1)+") working on "+replyTo+" of "+pn.getName());
+ }
sendAuthPacket(1, 0, phase, data, pn, replyTo);
+ long time3 = System.currentTimeMillis();
+ if((time3 - time2) > 500) {
+ Logger.error(this, "sendFirstHalfDHPacket:sendAuthPacket() time3 is
more than half a second after time2 ("+(time3 - time2)+") working on
"+replyTo+" of "+pn.getName());
+ }
+ if((time3 - time1) > 500) {
+ Logger.error(this, "sendFirstHalfDHPacket: time3 is more than half a
second after time1 ("+(time3 - time1)+") working on "+replyTo+" of
"+pn.getName());
+ }
}
/**
* Send an auth packet.
*/
private void sendAuthPacket(int version, int negType, int phase, byte[]
data, PeerNode pn, Peer replyTo) {
+ long now = System.currentTimeMillis();
+ int delta = (int) (now - pn.lastSentPacketTime());
byte[] output = new byte[data.length+3];
output[0] = (byte) version;
output[1] = (byte) negType;
output[2] = (byte) phase;
System.arraycopy(data, 0, output, 3, data.length);
- Logger.minor(this, "Sending auth packet ("+version+","+negType+" to
"+replyTo+" - version="+version+" negType="+negType+" phase="+phase+"
data.length="+data.length+" for "+pn);
+ Logger.minor(this, "Sending auth packet ("+version+","+negType+" to
"+replyTo+" - version="+version+" negType="+negType+" phase="+phase+"
data.length="+data.length+" for "+pn.getPeer()+" (last packet sent "+delta+"ms
ago)");
sendAuthPacket(output, pn, replyTo);
}
@@ -1292,23 +1306,23 @@
handshakeIPs = pn.getHandshakeIPs();
long secondTime = System.currentTimeMillis();
if((secondTime - firstTime) > 1000)
- Logger.normal(this, "getHandshakeIPs() took more than a second to
execute ("+(secondTime - firstTime)+") working on "+pn.getName());
+ Logger.error(this, "getHandshakeIPs() took more than a second to
execute ("+(secondTime - firstTime)+") working on "+pn.getName());
if(handshakeIPs.length == 0) {
pn.couldNotSendHandshake();
long thirdTime = System.currentTimeMillis();
if((thirdTime - secondTime) > 1000)
- Logger.normal(this, "couldNotSendHandshake() (after
getHandshakeIPs()) took more than a second to execute ("+(thirdTime -
secondTime)+") working on "+pn.getName());
+ Logger.error(this, "couldNotSendHandshake() (after
getHandshakeIPs()) took more than a second to execute ("+(thirdTime -
secondTime)+") working on "+pn.getName());
return;
} else {
long DHTime1 = System.currentTimeMillis();
ctx = DiffieHellman.generateContext();
long DHTime2 = System.currentTimeMillis();
if((DHTime2 - DHTime1) > 1000)
- Logger.normal(this, "DHTime2 is more than a second after
DHTime1 ("+(DHTime2 - DHTime1)+") working on "+pn.getName());
+ Logger.error(this, "DHTime2 is more than a second after
DHTime1 ("+(DHTime2 - DHTime1)+") working on "+pn.getName());
pn.setDHContext(ctx);
long DHTime3 = System.currentTimeMillis();
if((DHTime3 - DHTime2) > 1000)
- Logger.normal(this, "DHTime3 is more than a second after
DHTime2 ("+(DHTime3 - DHTime2)+") working on "+pn.getName());
+ Logger.error(this, "DHTime3 is more than a second after
DHTime2 ("+(DHTime3 - DHTime2)+") working on "+pn.getName());
}
int sentCount = 0;
long loopTime1 = System.currentTimeMillis();
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-06-18 16:36:39 UTC
(rev 9302)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-06-18 17:35:22 UTC
(rev 9303)
@@ -556,7 +556,7 @@
*/
public void maybeUpdateHandshakeIPs(boolean ignoreHostnames) {
long now = System.currentTimeMillis();
- if((now - lastAttemptedHandshakeIPUpdateTime) < (5*60*1000)) {
+ if((now - lastAttemptedHandshakeIPUpdateTime) < (5*60*1000)) { // 5
minutes
//Logger.minor(this, "Looked up recently (detectedPeer =
"+detectedPeer + " : "+((detectedPeer == null) ? "" :
detectedPeer.getAddress(false).toString()));
return; // 5 minutes FIXME
}
@@ -628,7 +628,7 @@
detectedPeer = detectedDuplicate;
}
}
- Logger.minor(this, "3: detectedPeer = "+detectedPeer+"
("+detectedPeer.getAddress(false));
+ Logger.minor(this, "3: detectedPeer = "+detectedPeer+"
("+detectedPeer.getAddress(false)+")");
Logger.minor(this, "3: maybeUpdateHandshakeIPs got a result of:
"+handshakeIPsToString());
return;
}