Author: toad
Date: 2008-04-10 14:48:34 +0000 (Thu, 10 Apr 2008)
New Revision: 19140
Modified:
trunk/freenet/src/freenet/node/Announcer.java
Log:
Bugfix kill-announcement-too-old mechanism
Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java 2008-04-10 14:35:04 UTC
(rev 19139)
+++ trunk/freenet/src/freenet/node/Announcer.java 2008-04-10 14:48:34 UTC
(rev 19140)
@@ -244,6 +244,8 @@
private long timeGotEnoughPeers = -1;
+ private boolean killedAnnouncementTooOld;
+
/** @return True if we have enough peers that we don't need to
announce. */
boolean enoughPeers() {
// Do we want to send an announcement to the node?
@@ -262,7 +264,11 @@
if(node.nodeUpdater == null || (!node.nodeUpdater.isEnabled())
||
(node.nodeUpdater.canUpdateNow() &&
!node.nodeUpdater.isArmed())) {
// If we also have 10 TOO_NEW peers, we should shut
down the announcement,
- // because we're obviously broken and would only be
spamming the seednodes.
+ // because we're obviously broken and would only be
spamming the seednodes
+ synchronized(this) {
+ if(killedAnnouncementTooOld) return true;
+ killedAnnouncementTooOld = true;
+ }
if(node.peers.getPeerNodeStatusSize(PeerManager.PEER_NODE_STATUS_TOO_NEW, true)
+
node.peers.getPeerNodeStatusSize(PeerManager.PEER_NODE_STATUS_TOO_NEW, false) >
10) {
Logger.error(this, "Shutting down announcement
as we are older than the current mandatory build and auto-update is disabled or
waiting for user input.");
@@ -270,6 +276,7 @@
if(node.clientCore != null)
node.clientCore.alerts.register(new
SimpleUserAlert(false, l10n("announceDisabledTooOldTitle"),
l10n("announceDisabledTooOld"), UserAlert.CRITICAL_ERROR));
}
+ return true;
}
synchronized(this) {