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.