Author: nextgens
Date: 2006-09-08 08:32:21 +0000 (Fri, 08 Sep 2006)
New Revision: 10428
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/KeyTracker.java
trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
Log:
revert 10416; hopefully it will solve current problems
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-09-08
03:27:22 UTC (rev 10427)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2006-09-08
08:32:21 UTC (rev 10428)
@@ -807,7 +807,7 @@
Logger.error(this, "Packet not long enough at byte "+ptr+" on
"+tracker);
}
int realSeqNo = referenceSeqNumber - offset;
- if(logMINOR) Logger.minor(this, "RetransmitRequest: "+realSeqNo+"
for "+tracker.pn.getPeer());
+ if(logMINOR) Logger.minor(this, "RetransmitRequest: "+realSeqNo);
tracker.resendPacket(realSeqNo);
}
Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java 2006-09-08 03:27:22 UTC
(rev 10427)
+++ trunk/freenet/src/freenet/node/KeyTracker.java 2006-09-08 08:32:21 UTC
(rev 10428)
@@ -309,15 +309,13 @@
private class QueuedAckRequest extends BaseQueuedResend {
final long createdTime;
- long activeDelay;
long initialActiveTime(long now) {
// 500ms after sending packet, send ackrequest
- activeDelay = fourRTTs();
- return now + activeDelay;
+ return now + 500;
}
- QueuedAckRequest(int packetNumber, boolean sendSoon) {
+ QueuedAckRequest(int packetNumber, boolean sendSoon) {
super(packetNumber);
this.createdTime = System.currentTimeMillis();
if(sendSoon) {
@@ -371,11 +369,7 @@
queueAck(seqNumber);
}
- public long fourRTTs() {
- return (long) Math.max(500, pn.averagePingTime()*4);
- }
-
- protected void receivedPacketNumber(int seqNumber) {
+ protected void receivedPacketNumber(int seqNumber) {
if(logMINOR) Logger.minor(this, "Handling received packet number
"+seqNumber);
queueResendRequests(seqNumber);
packetNumbersReceived.got(seqNumber);
@@ -905,25 +899,18 @@
*/
public ResendPacketItem[] grabResendPackets() {
int[] numbers;
- long now = System.currentTimeMillis();
- long fourRTTs = fourRTTs();
- int count = 0;
synchronized(packetsToResend) {
int len = packetsToResend.size();
numbers = new int[len];
int i=0;
for(Iterator it=packetsToResend.iterator();it.hasNext();) {
int packetNo = ((Integer)it.next()).intValue();
- long resentTime = sentPacketsContents.getReaddedTime(packetNo);
- if(resentTime > 0 && now - resentTime > fourRTTs) {
- numbers[i++] = packetNo;
- it.remove();
- count++;
- }
+ numbers[i++] = packetNo;
}
+ packetsToResend.clear();
}
- ResendPacketItem[] items = new ResendPacketItem[count];
- for(int i=0;i<count;i++) {
+ ResendPacketItem[] items = new ResendPacketItem[numbers.length];
+ for(int i=0;i<numbers.length;i++) {
int packetNo = numbers[i];
byte[] buf = sentPacketsContents.get(packetNo);
if(buf == null) {
Modified: trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
===================================================================
--- trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
2006-09-08 03:27:22 UTC (rev 10427)
+++ trunk/freenet/src/freenet/support/LimitedRangeIntByteArrayMap.java
2006-09-08 08:32:21 UTC (rev 10428)
@@ -67,17 +67,6 @@
}
/**
- * Get the time at which an index was re-added last.
- */
- public synchronized long getReaddedTime(int index) {
- Integer i = new Integer(index);
- LimitedRangeIntByteArrayMapElement wrapper =
(LimitedRangeIntByteArrayMapElement) contents.get(i);
- if(wrapper != null)
- return wrapper.reputTime;
- else return -1;
- }
-
- /**
* Try to add an index/data mapping.
* @return True if we succeeded, false if the index was out
* of range.
@@ -100,12 +89,7 @@
minValue = index;
}
if(data == null) throw new NullPointerException();
- Integer i = new Integer(index);
- LimitedRangeIntByteArrayMapElement le =
(LimitedRangeIntByteArrayMapElement) contents.get(i);
- if(le == null)
- contents.put(new Integer(index), new
LimitedRangeIntByteArrayMapElement(index, data, callbacks));
- else
- le.reput();
+ contents.put(new Integer(index), new
LimitedRangeIntByteArrayMapElement(index, data, callbacks));
notifyAll();
return true;
}