Author: nextgens
Date: 2007-09-08 22:55:48 +0000 (Sat, 08 Sep 2007)
New Revision: 15075

Modified:
   branches/freenet-jfk/src/freenet/node/PacketSender.java
Log:
Fix a bug in PacketSender; we weren't ever disconnecting from a non-routable 
peer!

Modified: branches/freenet-jfk/src/freenet/node/PacketSender.java
===================================================================
--- branches/freenet-jfk/src/freenet/node/PacketSender.java     2007-09-08 
19:33:26 UTC (rev 15074)
+++ branches/freenet-jfk/src/freenet/node/PacketSender.java     2007-09-08 
22:55:48 UTC (rev 15075)
@@ -182,20 +182,17 @@
                 Math.max(pn.lastReceivedPacketTime(), 
lastReceivedPacketFromAnyNode);
                        pn.maybeOnConnect();
             if(pn.isConnected()) {
-               
-               if(pn.isRoutable() && pn.noLongerRoutable()) {
-                       // we don't disconnect but we mark it incompatible
-                       pn.invalidate();
-                       pn.setPeerNodeStatus(now);
-                       Logger.normal(this, "shouldDisconnectNow has returned 
true : marking the peer as incompatible");
-                       continue;
-               }
-               
                 // Is the node dead?
-                if(pn.isRoutable() && now - pn.lastReceivedPacketTime() > 
pn.maxTimeBetweenReceivedPackets()) {
+                if(now - pn.lastReceivedPacketTime() > 
pn.maxTimeBetweenReceivedPackets()) {
                        Logger.normal(this, "Disconnecting from "+pn+" - 
haven't received packets recently");
                     pn.disconnected();
                     continue;
+                } else if(pn.isRoutable() && pn.noLongerRoutable()) {
+                       // we don't disconnect but we mark it incompatible
+                       pn.invalidate();
+                       pn.setPeerNodeStatus(now);
+                       Logger.normal(this, "shouldDisconnectNow has returned 
true : marking the peer as incompatible");
+                       continue;
                 }

                 boolean mustSend = false;


Reply via email to