Author: nextgens
Date: 2007-12-01 13:43:35 +0000 (Sat, 01 Dec 2007)
New Revision: 16177

Modified:
   trunk/freenet/src/freenet/node/PacketSender.java
Log:
Fix a potential rekeying bug: we were "loosing" some packets here

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2007-12-01 12:23:33 UTC 
(rev 16176)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2007-12-01 13:43:35 UTC 
(rev 16177)
@@ -202,7 +202,7 @@
             lastReceivedPacketFromAnyNode =
                 Math.max(pn.lastReceivedPacketTime(), 
lastReceivedPacketFromAnyNode);
             pn.maybeOnConnect();
-            if(pn.isConnected() && !pn.isRekeying()) {
+            if(pn.isConnected()) {
                // Is the node dead?
                if(now - pn.lastReceivedPacketTime() > 
pn.maxTimeBetweenReceivedPackets()) {
                        Logger.normal(this, "Disconnecting from "+pn+" - 
haven't received packets recently");
@@ -309,21 +309,22 @@
                        pn.getOutgoingMangler().processOutgoingOrRequeue(new 
MessageItem[] { new MessageItem(m, null, 0, null) }, pn, true, true);
                 }
             } else {
-                // Not connected
+                // Not connected
+               if(pn.noContactDetails())
+                       pn.startARKFetcher();
+           }
+           if(pn.shouldSendHandshake()) {
                 // Send handshake if necessary
                 long beforeHandshakeTime = System.currentTimeMillis();
-                if(pn.shouldSendHandshake())
-                    pn.getOutgoingMangler().sendHandshake(pn);
-                if(pn.noContactDetails())
-                       pn.startARKFetcher();
+               pn.getOutgoingMangler().sendHandshake(pn);
                 long afterHandshakeTime = System.currentTimeMillis();
                 if((afterHandshakeTime - beforeHandshakeTime) > (2*1000))
                     Logger.error(this, "afterHandshakeTime is more than 2 
seconds past beforeHandshakeTime ("+(afterHandshakeTime - 
beforeHandshakeTime)+") in PacketSender working with "+pn.userToString());
-            }
+           }
                long tempNow = System.currentTimeMillis();
-               if((tempNow - oldTempNow) > (5*1000))
-                       Logger.error(this, "tempNow is more than 5 seconds past 
oldTempNow ("+(tempNow - oldTempNow)+") in PacketSender working with 
"+pn.userToString());
-               oldTempNow = tempNow;
+               if((tempNow - oldTempNow) > (5 * 1000))
+                       Logger.error(this, "tempNow is more than 5 seconds past 
oldTempNow (" + (tempNow - oldTempNow) + ") in PacketSender working with " + 
pn.userToString());
+               oldTempNow = tempNow;
        }

         // Consider sending connect requests to our opennet old-peers.


Reply via email to