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;


Reply via email to