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