Author: toad
Date: 2008-11-28 00:22:32 +0000 (Fri, 28 Nov 2008)
New Revision: 23934
Modified:
trunk/freenet/src/freenet/keys/FreenetURI.java
trunk/freenet/src/freenet/node/NodeStarter.java
trunk/freenet/src/freenet/node/updater/NodeUpdateManager.java
trunk/freenet/src/freenet/node/updater/NodeUpdater.java
Log:
Do not update past RECOMMENDED_EXT_BUILD_NUMBER.
Do start the ext updater even if we already have the recommended version, so we
can propagate it via UOM.
Modified: trunk/freenet/src/freenet/keys/FreenetURI.java
===================================================================
--- trunk/freenet/src/freenet/keys/FreenetURI.java 2008-11-27 23:35:49 UTC
(rev 23933)
+++ trunk/freenet/src/freenet/keys/FreenetURI.java 2008-11-28 00:22:32 UTC
(rev 23934)
@@ -845,4 +845,9 @@
public URI toURI(String basePath) throws URISyntaxException {
return new URI(basePath + toString(false, false));
}
+
+ public FreenetURI sskForUSK() {
+ if(!keyType.equalsIgnoreCase("USK")) throw new
IllegalStateException();
+ return new FreenetURI("SSK", docName+"-"+suggestedEdition,
metaStr, routingKey, cryptoKey, extra, 0);
+ }
}
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2008-11-27 23:35:49 UTC
(rev 23933)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2008-11-28 00:22:32 UTC
(rev 23934)
@@ -37,7 +37,8 @@
* This will be included in the jar manifest file so we can check it
when we download new builds. */
public final static int REQUIRED_EXT_BUILD_NUMBER = 25;
/** Freenet will function best with this build of freenet-ext.jar.
- * It may be required in the near future. The node will try to download
it. */
+ * It may be required in the near future. The node will try to download
it.
+ * The node will not update to a later ext version than this, because
that might be incompatible. */
public final static int RECOMMENDED_EXT_BUILD_NUMBER = 26;
/*
(File.separatorChar == '\\') &&
Modified: trunk/freenet/src/freenet/node/updater/NodeUpdateManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/NodeUpdateManager.java
2008-11-27 23:35:49 UTC (rev 23933)
+++ trunk/freenet/src/freenet/node/updater/NodeUpdateManager.java
2008-11-28 00:22:32 UTC (rev 23934)
@@ -235,9 +235,8 @@
throw new
InvalidConfigValueException(l10n("noUpdateWithoutWrapper"));
}
// Start it
- mainUpdater = new NodeUpdater(this, updateURI,
false, Version.buildNumber(), "main-jar-");
- if(shouldUpdateExt)
- extUpdater = new NodeUpdater(this,
extURI, true, NodeStarter.extBuildNumber, "ext-jar-");
+ mainUpdater = new NodeUpdater(this, updateURI,
false, Version.buildNumber(), Integer.MAX_VALUE, "main-jar-");
+ extUpdater = new NodeUpdater(this, extURI,
true, NodeStarter.extBuildNumber, NodeStarter.RECOMMENDED_EXT_BUILD_NUMBER,
"ext-jar-");
}
}
if(!enable) {
Modified: trunk/freenet/src/freenet/node/updater/NodeUpdater.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/NodeUpdater.java 2008-11-27
23:35:49 UTC (rev 23933)
+++ trunk/freenet/src/freenet/node/updater/NodeUpdater.java 2008-11-28
00:22:32 UTC (rev 23934)
@@ -41,13 +41,14 @@
private int fetchingVersion;
private int fetchedVersion;
private int writtenVersion;
+ private int maxDeployVersion;
private boolean isRunning;
private boolean isFetching;
public final boolean extUpdate;
private final String blobFilenamePrefix;
private File tempBlobFile;
- NodeUpdater(NodeUpdateManager manager, FreenetURI URI, boolean
extUpdate, int current, String blobFilenamePrefix) {
+ NodeUpdater(NodeUpdateManager manager, FreenetURI URI, boolean
extUpdate, int current, int max, String blobFilenamePrefix) {
logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.manager = manager;
this.node = manager.node;
@@ -61,6 +62,7 @@
this.isFetching = false;
this.extUpdate = extUpdate;
this.blobFilenamePrefix = blobFilenamePrefix;
+ this.maxDeployVersion = max;
FetchContext tempContext = core.makeClient((short) 0,
true).getFetchContext();
tempContext.allowSplitfiles = true;
@@ -91,6 +93,8 @@
return;
found = (int) key.suggestedEdition;
+ if(found > maxDeployVersion) found = maxDeployVersion;
+
if(found <= availableVersion)
return;
Logger.minor(this, "Updating availableVersion from " +
availableVersion + " to " + found + " and queueing an update");
@@ -139,8 +143,13 @@
System.err.println("Starting "
+ (extUpdate ? "freenet-ext.jar " : "") + "fetch for " + availableVersion);
tempBlobFile =
File.createTempFile(blobFilenamePrefix + availableVersion + "-", ".fblob.tmp",
manager.node.clientCore.getPersistentTempDir());
+ FreenetURI uri =
URI.setSuggestedEdition(availableVersion);
+ if(maxDeployVersion !=
Integer.MAX_VALUE) {
+ uri = uri.sskForUSK();
+ if(logMINOR) Logger.minor(this,
"Fetching SSK not USK because of upper limit: "+uri);
+ }
cg = new ClientGetter(this,
core.requestStarters.chkFetchScheduler, core.requestStarters.sskFetchScheduler,
-
URI.setSuggestedEdition(availableVersion), ctx,
RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS,
+ uri, ctx,
RequestStarter.IMMEDIATE_SPLITFILE_PRIORITY_CLASS,
this, null, new
FileBucket(tempBlobFile, false, false, false, false, false));
toStart = cg;
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs