Author: toad
Date: 2005-12-05 22:58:46 +0000 (Mon, 05 Dec 2005)
New Revision: 7675
Modified:
trunk/freenet/src/freenet/node/InsertHandler.java
trunk/freenet/src/freenet/node/NodeDispatcher.java
trunk/freenet/src/freenet/node/NodePinger.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
275: (mandatory)
Preemptively reject requests (build all the infrastructure, but forgot to call
the method!)
Send an FNPInsertTransfersCompleted after FNPTooSlow.
Reduce MAX_PINGS to 5 to get earlier feedback if they are being dropped.
Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java 2005-12-05 20:44:06 UTC
(rev 7674)
+++ trunk/freenet/src/freenet/node/InsertHandler.java 2005-12-05 22:58:46 UTC
(rev 7675)
@@ -91,6 +91,8 @@
Logger.error(this, "Did not receive DataInsert on "+uid+" from
"+source+" !");
Message tooSlow = DMT.createFNPRejectedTimeout(uid);
source.sendAsync(tooSlow, null);
+ Message m = DMT.createFNPInsertTransfersCompleted(uid, true);
+ source.sendAsync(m, null);
prb = new PartiallyReceivedBlock(Node.PACKETS_IN_BLOCK,
Node.PACKET_SIZE);
br = new BlockReceiver(node.usm, source, uid, prb);
prb.abort(RetrievalException.NO_DATAINSERT, "No DataInsert");
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2005-12-05 20:44:06 UTC
(rev 7674)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2005-12-05 22:58:46 UTC
(rev 7675)
@@ -105,6 +105,17 @@
}
return true;
}
+ if(node.shouldRejectRequest()) {
+ Logger.normal(this, "Rejecting request preemptively");
+ Message rejected = DMT.createFNPRejectedOverload(id, true);
+ try {
+ ((PeerNode)(m.getSource())).sendAsync(rejected, null);
+ } catch (NotConnectedException e) {
+ Logger.normal(this, "Rejecting (overload) data request: "+e);
+ }
+ node.completed(id);
+ return true;
+ }
if(!node.lockUID(id)) {
Logger.minor(this, "Could not lock ID "+id+" -> rejecting (already
running)");
Message rejected = DMT.createFNPRejectedLoop(id);
@@ -137,6 +148,17 @@
}
return true;
}
+ if(node.shouldRejectRequest()) {
+ Logger.normal(this, "Rejecting insert preemptively");
+ Message rejected = DMT.createFNPRejectedOverload(id, true);
+ try {
+ ((PeerNode)(m.getSource())).sendAsync(rejected, null);
+ } catch (NotConnectedException e) {
+ Logger.normal(this, "Rejecting (overload) insert request: "+e);
+ }
+ node.completed(id);
+ return true;
+ }
if(!node.lockUID(id)) {
Logger.minor(this, "Could not lock ID "+id+" -> rejecting (already
running)");
Message rejected = DMT.createFNPRejectedLoop(id);
Modified: trunk/freenet/src/freenet/node/NodePinger.java
===================================================================
--- trunk/freenet/src/freenet/node/NodePinger.java 2005-12-05 20:44:06 UTC
(rev 7674)
+++ trunk/freenet/src/freenet/node/NodePinger.java 2005-12-05 22:58:46 UTC
(rev 7675)
@@ -51,6 +51,7 @@
double avgPingTime = peer.averagePingTime();
double avgThrottledPacketSendTime =
peer.throttledPacketSendAverage.currentValue();
double value = Math.max(avgPingTime,
avgThrottledPacketSendTime);
+ Logger.minor(this, "Peer: "+peer.getPeer()+",
avgPingTime: "+avgPingTime+", avg throttled send time:
"+avgThrottledPacketSendTime);
total *= value;
}
if(peerCount > 0) {
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2005-12-05 20:44:06 UTC
(rev 7674)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2005-12-05 22:58:46 UTC
(rev 7675)
@@ -988,7 +988,9 @@
}
Object pingSync = new Object();
- final static int MAX_PINGS = 10;
+ // Relatively few as we only get one every 200ms*#nodes
+ // We want to get reasonably early feedback if it's dropping all of
them...
+ final static int MAX_PINGS = 5;
final LRUHashtable pingsSentTimes = new LRUHashtable();
long pingNumber;
final RunningAverage pingAverage;
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-12-05 20:44:06 UTC (rev
7674)
+++ trunk/freenet/src/freenet/node/Version.java 2005-12-05 22:58:46 UTC (rev
7675)
@@ -20,10 +20,10 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- public static final int buildNumber = 274;
+ public static final int buildNumber = 275;
/** Oldest build of Fred we will talk to */
- public static final int lastGoodBuild = 274;
+ public static final int lastGoodBuild = 275;
/** The highest reported build of fred */
public static int highestSeenBuild = buildNumber;