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) {


Reply via email to