Author: toad
Date: 2006-06-30 13:51:46 +0000 (Fri, 30 Jun 2006)
New Revision: 9410
Modified:
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
845: Timed mandatory's are still not fully working. Fix hopefully; if a node's
version becomes invalid (due to ours becoming mandatory), disconnect from it.
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2006-06-30 02:08:28 UTC
(rev 9409)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2006-06-30 13:51:46 UTC
(rev 9410)
@@ -152,6 +152,12 @@
lastReceivedPacketFromAnyNode =
Math.max(pn.lastReceivedPacketTime(),
lastReceivedPacketFromAnyNode);
if(pn.isConnected()) {
+
+ if(pn.shouldDisconnectNow()) {
+ pn.forceDisconnect();
+ continue;
+ }
+
// Is the node dead?
if(now - pn.lastReceivedPacketTime() >
pn.maxTimeBetweenReceivedPackets()) {
Logger.error(this, "Disconnecting from "+pn+" - haven't
received packets recently");
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-06-30 02:08:28 UTC
(rev 9409)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-06-30 13:51:46 UTC
(rev 9410)
@@ -2027,5 +2027,9 @@
public boolean isListenOnly() {
return isListenOnly;
}
+
+ public synchronized boolean shouldDisconnectNow() {
+ verifiedIncompatibleOlderVersion = invalidVersion();
+ return verifiedIncompatibleOlderVersion;
+ }
}
-
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-30 02:08:28 UTC (rev
9409)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-30 13:51:46 UTC (rev
9410)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 844;
+ private static final int buildNumber = 845;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 839;