Author: toad
Date: 2008-01-18 15:13:48 +0000 (Fri, 18 Jan 2008)
New Revision: 17144

Modified:
   trunk/freenet/src/freenet/clients/http/QueueToadlet.java
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
   trunk/freenet/src/freenet/node/NodeClientCore.java
   trunk/freenet/src/freenet/node/fcp/FCPServer.java
Log:
Don't show the queue page or allow any actions to be done through it until the 
queue has finished loading

Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2008-01-18 
15:01:57 UTC (rev 17143)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2008-01-18 
15:13:48 UTC (rev 17144)
@@ -74,6 +74,11 @@

        public void handlePost(URI uri, HTTPRequest request, ToadletContext 
ctx) throws ToadletContextClosedException, IOException, RedirectException {

+               if(!core.hasLoadedQueue()) {
+                       
writeError(L10n.getString("QueueToadlet.notLoadedYetTitle"), 
L10n.getString("QueueToadlet.notLoadedYet"), ctx);
+                       return;
+               }
+               
                boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);

                try {
@@ -389,6 +394,11 @@
                        return;
                }

+               if(!core.hasLoadedQueue()) {
+                       
writeError(L10n.getString("QueueToadlet.notLoadedYetTitle"), 
L10n.getString("QueueToadlet.notLoadedYet"), ctx);
+                       return;
+               }
+               
                final String requestPath = 
request.getPath().substring("/queue/".length());

                if (requestPath.length() > 0) {

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-01-18 
15:01:57 UTC (rev 17143)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-01-18 
15:13:48 UTC (rev 17144)
@@ -857,6 +857,8 @@
 QueueToadlet.mimeType=MIME Type
 QueueToadlet.noTaskOnGlobalQueue=There is no task queued on the global queue 
at the moment.
 QueueToadlet.none=none
+QueueToadlet.notLoadedYetTitle=Queue not loaded yet
+QueueToadlet.notLoadedYet=The node is still loading the persistent requests 
queue. Please be patient.
 QueueToadlet.panicButton=Panic Button
 QueueToadlet.panicButtonConfirmation=Remove all requests without confirmation!
 QueueToadlet.persistence=Persistence

Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java  2008-01-18 15:01:57 UTC 
(rev 17143)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java  2008-01-18 15:13:48 UTC 
(rev 17144)
@@ -1052,4 +1052,8 @@
                else
                        throw new IllegalArgumentException("Not a CHK and not 
an SSK!");
        }
+
+       public boolean hasLoadedQueue() {
+               return fcpServer.hasFinishedStart();
+       }
 }

Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java   2008-01-18 15:01:57 UTC 
(rev 17143)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java   2008-01-18 15:13:48 UTC 
(rev 17144)
@@ -85,6 +85,7 @@
        private boolean canStartPersister = false;
        private boolean assumeDownloadDDAIsAllowed;
        private boolean assumeUploadDDAIsAllowed;
+       private boolean hasFinishedStart;

        private void startPersister() {
                Thread t = new Thread(persister = new FCPServerPersister(), 
"FCP request persister");
@@ -864,6 +865,7 @@
                if(enablePersistentDownloads)
                        startPersister();
                canStartPersister = true;
+               hasFinishedStart = true;
        }


@@ -883,5 +885,9 @@
        protected boolean isUploadDDAAlwaysAllowed() {
                return assumeUploadDDAIsAllowed;
        }
+
+       public boolean hasFinishedStart() {
+               return hasFinishedStart;
+       }

 }


Reply via email to