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;
 }


Reply via email to