Author: toad
Date: 2006-08-15 15:05:30 +0000 (Tue, 15 Aug 2006)
New Revision: 10085
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
Log:
943: Process acks etc in a packet even if we have already received that packet.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-08-15
10:35:40 UTC (rev 10084)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-08-15
15:05:30 UTC (rev 10085)
@@ -620,12 +620,6 @@
// Verify
tracker.pn.verified(tracker);
- if((seqNumber != -1) && tracker.alreadyReceived(seqNumber)) {
- tracker.queueAck(seqNumber);
- Logger.normal(this, "Received packet twice from
"+tracker.pn.getPeer()+": "+seqNumber);
- return true;
- }
-
for(int i=0;i<md.getDigestLength();i++) {
packetHash[i] ^= buf[offset+i];
}
@@ -716,8 +710,6 @@
Logger.minor(this, "Reference sequence number: "+referenceSeqNumber);
- tracker.receivedPacket(seqNumber);
-
int ackCount = decrypted[ptr++] & 0xff;
Logger.minor(this, "Acks: "+ackCount);
@@ -778,7 +770,15 @@
return;
}
// No sequence number == no messages
+
+ if((seqNumber != -1) && tracker.alreadyReceived(seqNumber)) {
+ tracker.queueAck(seqNumber);
+ Logger.error(this, "Received packet twice ("+seqNumber+") from
"+tracker.pn.getPeer()+": "+seqNumber);
+ return;
+ }
+ tracker.receivedPacket(seqNumber);
+
int messages = decrypted[ptr++] & 0xff;
overhead += ptr;
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-08-15 10:35:40 UTC
(rev 10084)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-08-15 15:05:30 UTC
(rev 10085)
@@ -328,7 +328,7 @@
public void onAcked() {
long t = Math.max(0, System.currentTimeMillis() -
createdTime);
pn.pingAverage.report(t);
- Logger.minor(this, "Reported round-trip time of "+t+"ms
on "+pn.getPeer());
+ Logger.minor(this, "Reported round-trip time of "+t+"ms
on "+pn.getPeer()+" (avg "+pn.pingAverage.currentValue()+"ms,
#"+packetNumber+")");
}
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-08-15 10:35:40 UTC (rev
10084)
+++ trunk/freenet/src/freenet/node/Version.java 2006-08-15 15:05:30 UTC (rev
10085)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 942;
+ private static final int buildNumber = 943;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 920;
Modified: trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
===================================================================
--- trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
2006-08-15 10:35:40 UTC (rev 10084)
+++ trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
2006-08-15 15:05:30 UTC (rev 10085)
@@ -137,8 +137,8 @@
if(!started) {
curValue = d;
started = true;
- if(logDEBUG)
- Logger.debug(this, "Reported "+d+" on
"+this+" when just started");
+ //if(logDEBUG)
+ Logger.minor(this, "Reported "+d+" on
"+this+" when just started");
} else if(lastReportTime != -1) { // might be just
serialized in
long thisInterval =
now - lastReportTime;
@@ -151,8 +151,8 @@
double oldCurValue = curValue;
curValue = curValue * changeFactor /* close to
1.0 if short interval, close to 0.0 if long interval */
+ (1.0 - changeFactor) * d;
- if(logDEBUG)
- Logger.debug(this, "Reported "+d+" on
"+this+": thisInterval="+thisInterval+
+ //if(logDEBUG)
+ Logger.minor(this, "Reported "+d+" on
"+this+": thisInterval="+thisInterval+
",
halfLife="+halfLife+", uptime="+uptime+", thisHalfLife="+thisHalfLife+
",
changeFactor="+changeFactor+", oldCurValue="+oldCurValue+
",
currentValue="+currentValue()+