Author: zothar
Date: 2006-05-19 19:50:05 +0000 (Fri, 19 May 2006)
New Revision: 8790

Modified:
   trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
   trunk/freenet/src/freenet/node/CHKInsertSender.java
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/RequestSender.java
   trunk/freenet/src/freenet/node/SSKInsertSender.java
   trunk/freenet/src/freenet/node/Version.java
Log:
730: Display reason for last backoff/localRejectedOverload() on /darknet/ page 
for each peer.

Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2006-05-19 16:30:10 UTC (rev 8789)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2006-05-19 19:50:05 UTC (rev 8790)
@@ -144,13 +144,18 @@
                                        status = DISCONNECTED;
                                }

+                               String lastBackoffReasonOutputString = "/";
+                               String backoffReason = 
pn.getLastBackoffReason();
+                               if( backoffReason != null ) {
+                                       lastBackoffReasonOutputString = 
"/"+backoffReason;
+                               }
                                row[0] = pn;
                                row[1] = status;
                                row[2] = HTMLEncoder.encode(pn.getName());
                                row[3] = pn.getDetectedPeer() != null ? 
HTMLEncoder.encode(pn.getDetectedPeer().toString()) : "(address unknown)";
                                row[4] = HTMLEncoder.encode(pn.getVersion());
                                row[5] = new 
Double(pn.getLocation().getValue());
-                               row[6] = backoff/1000 + "/" + 
pn.getRoutingBackoffLength()/1000;
+                               row[6] = backoff/1000 + "/" + 
pn.getRoutingBackoffLength()/1000+lastBackoffReasonOutputString;
                                if (idle == -1) row[7] = " ";
                                else row[7] = new Long((now - idle) / 60000);
                                row[8] = "<input type=\"checkbox\" 
name=\"delete_node_"+pn.hashCode()+"\" />";

Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-19 16:30:10 UTC 
(rev 8789)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java 2006-05-19 19:50:05 UTC 
(rev 8790)
@@ -289,7 +289,7 @@
                                        // Terminal overload
                                        // Try to propagate back to source
                                        Logger.minor(this, "Timeout");
-                                       next.localRejectedOverload();
+                                       next.localRejectedOverload("Timeout3");
                                        finish(TIMED_OUT, next);
                                        return;
                                }
@@ -297,7 +297,7 @@
                                if (msg.getSpec() == DMT.FNPRejectedOverload) {
                                        // Non-fatal - probably still have time 
left
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload5");
                                                Logger.minor(this,
                                                                                
"Local RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another
@@ -393,7 +393,7 @@
                                                        + ") after Accepted in 
insert");
                                        // Terminal overload
                                        // Try to propagate back to source
-                                       next.localRejectedOverload();
+                                       
next.localRejectedOverload("AfterInsertAcceptedTimeout2");
                                        finish(TIMED_OUT, next);
                                        return;
                                }
@@ -401,7 +401,7 @@
                                if (msg.getSpec() == DMT.FNPRejectedOverload) {
                                        // Probably non-fatal, if so, we have 
time left, can try next one
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload6");
                                                Logger.minor(this,
                                                                "Local 
RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-05-19 16:30:10 UTC 
(rev 8789)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-05-19 19:50:05 UTC 
(rev 8790)
@@ -1310,12 +1310,22 @@
        final int MAX_ROUTING_BACKOFF_LENGTH = 24*60*60*1000;
        /** Current nominal routing backoff length */
        int routingBackoffLength = INITIAL_ROUTING_BACKOFF_LENGTH;
+       /** Last backoff reason */
+       String lastBackoffReason = null;

        /**
         * Got a local RejectedOverload.
         * Back off this node for a while.
         */
        public void localRejectedOverload() {
+         localRejectedOverload("");
+       }
+       
+       /**
+        * Got a local RejectedOverload.
+        * Back off this node for a while.
+        */
+       public void localRejectedOverload(String reason) {
                Logger.minor(this, "Local rejected overload on "+this);
                synchronized(routingBackoffSync) {
                        long now = System.currentTimeMillis();
@@ -1326,7 +1336,12 @@
                                        routingBackoffLength = 
MAX_ROUTING_BACKOFF_LENGTH;
                                int x = 
node.random.nextInt(routingBackoffLength);
                                routingBackedOffUntil = now + x;
-                               Logger.minor(this, "Backing off: 
routingBackoffLength="+routingBackoffLength+", until "+x+"ms on "+getPeer());
+                               setLastBackoffReason( reason );
+                               String reasonWrapper = "";
+                               if( 0 < reason.length()) {
+                                       reasonWrapper = " because of 
'"+reason+"'";
+                               }
+                               Logger.normal(this, "Backing 
off"+reasonWrapper+": routingBackoffLength="+routingBackoffLength+", until 
"+x+"ms on "+getPeer());
                        } else {
                                Logger.minor(this, "Ignoring 
localRejectedOverload: "+(routingBackedOffUntil-now)+"ms remaining on routing 
backoff on "+getPeer());
                        }
@@ -1433,6 +1448,14 @@
                return routingBackedOffUntil;
        }

+       public String getLastBackoffReason() {
+               return lastBackoffReason;
+       }
+
+       public void setLastBackoffReason(String s) {
+               this.lastBackoffReason = s;
+       }
+
        public boolean hasCompletedHandshake() {
                return completedHandshake;
        }

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java   2006-05-19 16:30:10 UTC 
(rev 8789)
+++ trunk/freenet/src/freenet/node/RequestSender.java   2006-05-19 19:50:05 UTC 
(rev 8790)
@@ -175,7 +175,7 @@
                if(msg == null) {
                        Logger.minor(this, "Timeout waiting for Accepted");
                        // Timeout waiting for Accepted
-                       next.localRejectedOverload();
+                       next.localRejectedOverload("AcceptedTimeout");
                        forwardRejectedOverload();
                        // Try next node
                        break;
@@ -194,7 +194,7 @@
                                        forwardRejectedOverload();
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
                                                Logger.minor(this, "Is local");
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload");
                                                Logger.minor(this, "Local 
RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another
                                                break;
@@ -244,7 +244,7 @@

                if(msg == null) {
                        // Fatal timeout
-                       next.localRejectedOverload();
+                       next.localRejectedOverload("FatalTimeout");
                        forwardRejectedOverload();
                        finish(TIMED_OUT, next);
                        return;
@@ -268,7 +268,7 @@
                                        // Non-fatal - probably still have time 
left
                                        forwardRejectedOverload();
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload2");
                                                Logger.minor(this, "Local 
RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another
                                                break;

Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-19 16:30:10 UTC 
(rev 8789)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java 2006-05-19 19:50:05 UTC 
(rev 8790)
@@ -198,7 +198,7 @@
                                        // Terminal overload
                                        // Try to propagate back to source
                                        Logger.minor(this, "Timeout");
-                                       next.localRejectedOverload();
+                                       next.localRejectedOverload("Timeout");
                                        finish(TIMED_OUT, next);
                                        return;
                                }
@@ -206,7 +206,7 @@
                                if (msg.getSpec() == DMT.FNPRejectedOverload) {
                                        // Non-fatal - probably still have time 
left
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload3");
                                                Logger.minor(this,
                                                                                
"Local RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another
@@ -265,7 +265,7 @@
                                        // Terminal overload
                                        // Try to propagate back to source
                                        Logger.minor(this, "Timeout");
-                                       next.localRejectedOverload();
+                                       next.localRejectedOverload("Timeout2");
                                        finish(TIMED_OUT, next);
                                        return;
                }
@@ -310,7 +310,7 @@
                                                        + ") after Accepted in 
insert");
                                        // Terminal overload
                                        // Try to propagate back to source
-                                       next.localRejectedOverload();
+                                       
next.localRejectedOverload("AfterInsertAcceptedTimeout");
                                        finish(TIMED_OUT, next);
                                        return;
                                }
@@ -318,7 +318,7 @@
                                if (msg.getSpec() == DMT.FNPRejectedOverload) {
                                        // Probably non-fatal, if so, we have 
time left, can try next one
                                        if (msg.getBoolean(DMT.IS_LOCAL)) {
-                                               next.localRejectedOverload();
+                                               
next.localRejectedOverload("ForwardRejectedOverload4");
                                                Logger.minor(this,
                                                                "Local 
RejectedOverload, moving on to next peer");
                                                // Give up on this one, try 
another

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-05-19 16:30:10 UTC (rev 
8789)
+++ trunk/freenet/src/freenet/node/Version.java 2006-05-19 19:50:05 UTC (rev 
8790)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 729;
+       private static final int buildNumber = 730;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 698;


Reply via email to