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


Reply via email to