Author: toad
Date: 2005-11-25 16:42:32 +0000 (Fri, 25 Nov 2005)
New Revision: 7599
Modified:
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMapElement.java
Log:
218:
Fix the round trip time for the per-transfer packet throttle.
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2005-11-25 16:24:23 UTC
(rev 7598)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2005-11-25 16:42:32 UTC
(rev 7599)
@@ -499,10 +499,12 @@
Logger.minor(this, "Removed ack request");
callbacks = sentPacketsContents.getCallbacks(realSeqNo);
byte[] buf = sentPacketsContents.get(realSeqNo);
+ long timeAdded = sentPacketsContents.getTime(realSeqNo);
if(sentPacketsContents.remove(realSeqNo)) {
if(buf.length > Node.PACKET_SIZE) {
PacketThrottle throttle = getThrottle();
throttle.notifyOfPacketAcknowledged();
+ throttle.setRoundTripTime(System.currentTimeMillis() -
timeAdded);
}
}
if(callbacks != null) {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-25 16:24:23 UTC (rev
7598)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-25 16:42:32 UTC (rev
7599)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 217;
+ public static final int buildNumber = 218;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 217;
+ public static final int lastGoodBuild = 218;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;
Modified: trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
===================================================================
--- trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
2005-11-25 16:24:23 UTC (rev 7598)
+++ trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
2005-11-25 16:42:32 UTC (rev 7599)
@@ -56,6 +56,14 @@
else return null;
}
+ public synchronized long getTime(int index) {
+ Integer i = new Integer(index);
+ LimitedRangeIntByteArrayMapElement wrapper =
(LimitedRangeIntByteArrayMapElement) contents.get(i);
+ if(wrapper != null)
+ return wrapper.createdTime;
+ else throw new IllegalArgumentException();
+ }
+
/**
* Try to add an index/data mapping.
* @return True if we succeeded, false if the index was out
Modified:
trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMapElement.java
===================================================================
--- trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMapElement.java
2005-11-25 16:24:23 UTC (rev 7598)
+++ trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMapElement.java
2005-11-25 16:42:32 UTC (rev 7599)
@@ -9,9 +9,11 @@
this.packetNumber = packetNumber;
this.data = data2;
this.callbacks = callbacks2;
+ createdTime = System.currentTimeMillis();
}
public final int packetNumber;
public final byte[] data;
public final AsyncMessageCallback[] callbacks;
+ public final long createdTime;
}