[freenet-cvs] r16182 - trunk/freenet/src/freenet/node

nextgens at freenetproject.org nextgens at freenetproject.org
Sat Dec 1 15:14:36 UTC 2007


Author: nextgens
Date: 2007-12-01 15:14:36 +0000 (Sat, 01 Dec 2007)
New Revision: 16182

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
JFK: simplify|fix the logic of rekeying

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java	2007-12-01 14:50:20 UTC (rev 16181)
+++ trunk/freenet/src/freenet/node/PeerNode.java	2007-12-01 15:14:36 UTC (rev 16182)
@@ -899,30 +899,33 @@
 
 	protected void maybeRekey() {
 		long now = System.currentTimeMillis();
-		boolean hasRekeyed = false;
-		if(hasLiveHandshake(now))
-			return;
-
+		boolean shouldDisconnect = false;
+		boolean shouldReturn = false;
+		boolean shouldRekey = false;
 		long timeWhenRekeyingShouldOccur = 0;
-		synchronized(this) {
-			if(isRekeying || !isConnected)
-				return;
+		
+		synchronized (this) {
 			timeWhenRekeyingShouldOccur = timeLastRekeyed + FNPPacketMangler.SESSION_KEY_REKEYING_INTERVAL;
-			if((timeWhenRekeyingShouldOccur < now) || (totalBytesExchangedWithCurrentTracker > FNPPacketMangler.AMOUNT_OF_BYTES_ALLOWED_BEFORE_WE_REKEY)) {
-				hasRekeyed = true;
+			shouldDisconnect = (timeWhenRekeyingShouldOccur + FNPPacketMangler.MAX_SESSION_KEY_REKEYING_DELAY < now) && isRekeying;
+			shouldReturn = isRekeying || !isConnected;
+			shouldRekey = (timeWhenRekeyingShouldOccur < now) || (totalBytesExchangedWithCurrentTracker > FNPPacketMangler.AMOUNT_OF_BYTES_ALLOWED_BEFORE_WE_REKEY);
+		}
+		
+		if(shouldDisconnect) {
+			String time = TimeUtil.formatTime(FNPPacketMangler.MAX_SESSION_KEY_REKEYING_DELAY);
+			System.err.println("The peer (" + this + ") has been asked to rekey " + time + " ago... force disconnect.");
+			Logger.error(this, "The peer (" + this + ") has been asked to rekey " + time + " ago... force disconnect.");
+			forceDisconnect();
+		} else if (shouldReturn || hasLiveHandshake(now)) {
+			return;
+		} else if(shouldRekey) {
+			synchronized(this) {
 				isRekeying = true;
 				sendHandshakeTime = now; // Immediately
 				ctx = null;
 			}
+			Logger.normal(this, "We are asking for the key to be renewed (" + this.detectedPeer + ')');
 		}
-
-		if(timeWhenRekeyingShouldOccur + FNPPacketMangler.MAX_SESSION_KEY_REKEYING_DELAY < now) {
-			Logger.error(this, "The peer (" + this + ") has been asked to rekey " + TimeUtil.formatTime(FNPPacketMangler.MAX_SESSION_KEY_REKEYING_DELAY) + " ago... force disconnect.");
-			forceDisconnect();
-		}
-
-		if(hasRekeyed)
-			Logger.normal(this, "We are asking for the key to be renewed (" + this.detectedPeer + ')');
 	}
 
 	/**




More information about the cvs mailing list