Author: toad
Date: 2008-04-21 11:35:18 +0000 (Mon, 21 Apr 2008)
New Revision: 19470
Modified:
trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
Log:
Only redetect after 5 minutes if *all* detector plugins failed.
For some reason UP&P IP detection always fails for me, this should not cause
constant redetection.
Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-04-21
11:31:42 UTC (rev 19469)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java 2008-04-21
11:35:18 UTC (rev 19470)
@@ -385,7 +385,7 @@
*/
private HashMap /*<FredIPDetectorPlugin,DetectorRunner>*/ runners = new
HashMap();
- private boolean lastDetectAttemptFailed;
+ private HashSet /*<FredIPDetectorPlugin>*/ failedRunners = new
HashSet();
private long lastDetectAttemptEndedTime;
private long firstTimeUrgent;
@@ -415,7 +415,7 @@
// If detect attempt failed to produce an IP in the
last 5 minutes, don't
// try again yet.
- if(lastDetectAttemptFailed) {
+ if(failedRunners.size() == runners.size()) {
if(now - lastDetectAttemptEndedTime <
5*60*1000) {
if(logMINOR) Logger.minor(this, "Last
detect failed less than 5 minutes ago");
return;
@@ -630,7 +630,7 @@
private void startDetect() {
if(logMINOR) Logger.minor(this, "Detecting...");
synchronized(this) {
- lastDetectAttemptFailed = false;
+ failedRunners.clear();
for(int i=0;i<plugins.length;i++) {
FredPluginIPDetector plugin = plugins[i];
if(runners.containsKey(plugin)) continue;
@@ -697,7 +697,7 @@
}
if(failed) {
if(logMINOR) Logger.minor(this,
"Failed");
- lastDetectAttemptFailed = true;
+ failedRunners.add(plugin);
return;
}
}