Author: bback
Date: 2007-02-02 11:42:40 +0000 (Fri, 02 Feb 2007)
New Revision: 11648
Modified:
trunk/freenet/src/freenet/node/fcp/ClientGet.java
trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
trunk/freenet/src/freenet/node/fcp/ClientRequest.java
trunk/freenet/src/freenet/node/fcp/ModifyPersistentRequest.java
trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
Log:
- added ack of ModifyPersistentRequest
- !!! added ack of RemovePersistentRequest (new message
PersistentRequestRemoved)
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-01-31 19:33:47 UTC
(rev 11647)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-02-02 11:42:40 UTC
(rev 11648)
@@ -423,7 +423,7 @@
handler.queue(allDataPending);
}
- private FCPMessage persistentTagMessage() {
+ protected FCPMessage persistentTagMessage() {
return new PersistentGet(identifier, uri, verbosity,
priorityClass, returnType, persistenceType, targetFile, tempFile, clientToken,
client.isGlobalQueue, started, fctx.maxNonSplitfileRetries);
}
@@ -657,5 +657,4 @@
return false;
}
}
-
}
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2007-01-31
19:33:47 UTC (rev 11647)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2007-02-02
11:42:40 UTC (rev 11648)
@@ -240,8 +240,6 @@
trySendFinalMessage(handler);
}
- protected abstract FCPMessage persistentTagMessage();
-
public synchronized SimpleFieldSet getFieldSet() {
SimpleFieldSet fs = new SimpleFieldSet(); // we will need
multi-level later...
fs.put("Type", getTypeName());
Modified: trunk/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-01-31
19:33:47 UTC (rev 11647)
+++ trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2007-02-02
11:42:40 UTC (rev 11648)
@@ -1,20 +1,13 @@
package freenet.node.fcp;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.net.MalformedURLException;
+import java.io.*;
+import java.net.*;
-import freenet.client.async.ClientRequester;
-import freenet.keys.FreenetURI;
-import freenet.support.Fields;
-import freenet.support.HexUtil;
-import freenet.support.Logger;
-import freenet.support.SimpleFieldSet;
-import freenet.support.api.Bucket;
-import freenet.support.io.FileBucket;
-import freenet.support.io.PaddedEphemerallyEncryptedBucket;
-import freenet.support.io.SerializableToFieldSetBucket;
+import freenet.client.async.*;
+import freenet.keys.*;
+import freenet.support.*;
+import freenet.support.api.*;
+import freenet.support.io.*;
/**
* A request process carried out by the node for an FCP client.
@@ -298,6 +291,24 @@
public abstract boolean restart();
+ protected abstract FCPMessage persistentTagMessage();
+
+ /**
+ * Called after a ModifyPersistentRequest. Send a PersistentTagMessage to
the clients.
+ */
+ public void requestWasModified() {
+ FCPMessage msg = persistentTagMessage();
+ client.queueClientRequestMessage(msg, 0);
+ }
+
+ /**
+ * Called after a RemovePersistentRequest. Send a PersistentRequestRemoved
to the clients.
+ */
+ public void requestWasRemoved() {
+ FCPMessage msg = new PersistentRequestRemovedMessage(getIdentifier(),
global);
+ client.queueClientRequestMessage(msg, 0);
+ }
+
/** Utility method for storing details of a possibly encrypted bucket.
*/
protected void bucketToFS(SimpleFieldSet fs, String name, boolean
includeSize, Bucket data) {
SerializableToFieldSetBucket bucket =
(SerializableToFieldSetBucket) data;
Modified: trunk/freenet/src/freenet/node/fcp/ModifyPersistentRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ModifyPersistentRequest.java
2007-01-31 19:33:47 UTC (rev 11647)
+++ trunk/freenet/src/freenet/node/fcp/ModifyPersistentRequest.java
2007-02-02 11:42:40 UTC (rev 11648)
@@ -78,6 +78,7 @@
req.setPriorityClass(priorityClass);
if(req.isPersistentForever())
client.server.forceStorePersistentRequests();
+
+ req.requestWasModified();
}
-
}
Modified: trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
2007-01-31 19:33:47 UTC (rev 11647)
+++ trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
2007-02-02 11:42:40 UTC (rev 11648)
@@ -4,8 +4,7 @@
package freenet.node.fcp;
import freenet.node.Node;
-import freenet.support.Fields;
-import freenet.support.SimpleFieldSet;
+import freenet.support.*;
/**
* Client telling node to remove a (completed or not) persistent request.
@@ -37,7 +36,12 @@
public void run(FCPConnectionHandler handler, Node node)
throws MessageInvalidException {
FCPClient client = global ? handler.server.globalClient :
handler.getClient();
+ ClientRequest req = client.getRequest(identifier);
+ if(req==null){
+ Logger.error(this, "Huh ? the request is null!");
+ return;
+ }
client.removeByIdentifier(identifier, true);
+ req.requestWasRemoved();
}
-
}