Author: toad
Date: 2007-11-28 19:12:46 +0000 (Wed, 28 Nov 2007)
New Revision: 16034

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Record times and weak hashes of packets sent and received

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2007-11-28 19:11:41 UTC 
(rev 16033)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2007-11-28 19:12:46 UTC 
(rev 16034)
@@ -2863,13 +2863,31 @@
                return byteLen;
        }

+       // Recent packets sent/received
+       static final int TRACK_PACKETS = 64;
+       private final long[] packetsSentTimes = new long[TRACK_PACKETS];
+       private final long[] packetsRecvTimes = new long[TRACK_PACKETS];
+       private final long[] packetsSentHashes = new long[TRACK_PACKETS];
+       private final long[] packetsRecvHashes = new long[TRACK_PACKETS];
+       private int sentPtr;
+       private int recvPtr;
+       
        public void reportIncomingPacket(byte[] buf, int offset, int length, 
long now) {
                reportIncomingBytes(length);
-               // FIXME
+               long hash = Fields.longHashCode(buf, offset, length);
+               packetsRecvTimes[recvPtr] = now;
+               packetsRecvHashes[recvPtr] = hash;
+               recvPtr++;
+               if(recvPtr == TRACK_PACKETS) recvPtr = 0;
        }

-       public void reportOutgoingPacket(byte[] data, int i, int length, long 
l) {
+       public synchronized void reportOutgoingPacket(byte[] buf, int offset, 
int length, long now) {
                reportOutgoingBytes(length);
-               // FIXME
+               long hash = Fields.longHashCode(buf, offset, length);
+               packetsSentTimes[sentPtr] = now;
+               packetsSentHashes[sentPtr] = hash;
+               sentPtr++;
+               if(sentPtr == TRACK_PACKETS) sentPtr = 0;
        }
+       
 }


Reply via email to