Author: toad
Date: 2006-02-11 18:46:29 +0000 (Sat, 11 Feb 2006)
New Revision: 8015
Modified:
trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
trunk/freenet/src/freenet/client/async/SendableGet.java
trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/fcp/ClientGet.java
Log:
443:
DSOnly and IgnoreStore now work.
Modified: trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-02-11 18:19:16 UTC (rev 8014)
+++ trunk/freenet/src/freenet/client/async/ClientRequestScheduler.java
2006-02-11 18:46:29 UTC (rev 8015)
@@ -46,20 +46,22 @@
throw new IllegalArgumentException("Expected a
ClientPut: "+req);
if(req instanceof SendableGet) {
SendableGet getter = (SendableGet)req;
- ClientKeyBlock block;
- try {
- block = node.fetchKey(getter.getKey());
- } catch (KeyVerifyException e) {
- // Verify exception, probably bogus at source;
- // verifies at low-level, but not at decode.
- getter.onFailure(new
LowLevelGetException(LowLevelGetException.DECODE_FAILED));
- return;
+ if(!getter.ignoreStore()) {
+ ClientKeyBlock block;
+ try {
+ block = node.fetchKey(getter.getKey());
+ } catch (KeyVerifyException e) {
+ // Verify exception, probably bogus at
source;
+ // verifies at low-level, but not at
decode.
+ getter.onFailure(new
LowLevelGetException(LowLevelGetException.DECODE_FAILED));
+ return;
+ }
+ if(block != null) {
+ Logger.minor(this, "Can fulfill
immediately from store");
+ getter.onSuccess(block, true);
+ return;
+ }
}
- if(block != null) {
- Logger.minor(this, "Can fulfill immediately
from store");
- getter.onSuccess(block, true);
- return;
- }
}
synchronized(this) {
SectoredRandomGrabArrayWithInt grabber =
Modified: trunk/freenet/src/freenet/client/async/SendableGet.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SendableGet.java 2006-02-11
18:19:16 UTC (rev 8014)
+++ trunk/freenet/src/freenet/client/async/SendableGet.java 2006-02-11
18:46:29 UTC (rev 8015)
@@ -17,4 +17,6 @@
/** Called when/if the low-level request fails. */
public void onFailure(LowLevelGetException e);
+ /** Should the request ignore the datastore? */
+ public boolean ignoreStore();
}
Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-02-11 18:19:16 UTC (rev 8014)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-02-11 18:46:29 UTC (rev 8015)
@@ -527,7 +527,7 @@
// Do we need to support the last 3?
ClientKeyBlock block;
try {
- block = node.realGetKey(key, false,
ctx.cacheLocalRequests, false);
+ block = node.realGetKey(key, ctx.localRequestOnly,
ctx.cacheLocalRequests, ctx.ignoreStore);
} catch (LowLevelGetException e) {
onFailure(e);
return;
@@ -542,4 +542,8 @@
return parent.getClient();
}
+ public boolean ignoreStore() {
+ return ctx.ignoreStore;
+ }
+
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-02-11 18:19:16 UTC (rev
8014)
+++ trunk/freenet/src/freenet/node/Version.java 2006-02-11 18:46:29 UTC (rev
8015)
@@ -20,7 +20,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 442;
+ private static final int buildNumber = 443;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 403;
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-02-11 18:19:16 UTC
(rev 8014)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-02-11 18:46:29 UTC
(rev 8015)
@@ -64,7 +64,7 @@
fctx.maxTempLength = message.maxTempSize;
this.targetFile = message.diskFile;
this.tempFile = message.tempFile;
- getter = new ClientGetter(this, handler.node.fetchScheduler,
uri, fctx, priorityClass, handler.defaultFetchContext);
+ getter = new ClientGetter(this, handler.node.fetchScheduler,
uri, fctx, priorityClass, handler);
}
void start() {