Author: toad
Date: 2006-10-04 18:41:49 +0000 (Wed, 04 Oct 2006)
New Revision: 10599
Modified:
trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
trunk/freenet/src/freenet/client/async/ClientPutter.java
trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
trunk/freenet/src/freenet/client/async/SingleFileInserter.java
trunk/freenet/src/freenet/client/async/SplitFileInserter.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/node/NodeARKInserter.java
trunk/freenet/src/freenet/node/fcp/ClientPut.java
trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
trunk/freenet/src/freenet/node/fcp/ClientPutDirMessage.java
trunk/freenet/src/freenet/node/fcp/ClientPutMessage.java
Log:
EarlyEncode option.
Modified: trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
===================================================================
--- trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2006-10-04 12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/HighLevelSimpleClientImpl.java
2006-10-04 18:41:49 UTC (rev 10599)
@@ -132,7 +132,7 @@
PutWaiter pw = new PutWaiter();
ClientPutter put = new ClientPutter(pw, insert.getData(),
insert.desiredURI, insert.clientMetadata,
context, core.requestStarters.chkPutScheduler,
core.requestStarters.sskPutScheduler, priorityClass, getCHKOnly, isMetadata,
this, null, filenameHint);
- put.start();
+ put.start(false);
return pw.waitForCompletion();
}
@@ -156,7 +156,7 @@
public FreenetURI insertManifest(FreenetURI insertURI, HashMap
bucketsByName, String defaultName) throws InserterException {
PutWaiter pw = new PutWaiter();
SimpleManifestPutter putter =
- new SimpleManifestPutter(pw,
core.requestStarters.chkPutScheduler, core.requestStarters.sskPutScheduler,
SimpleManifestPutter.bucketsByNameToManifestEntries(bucketsByName),
priorityClass, insertURI, defaultName, getInserterContext(true), false, this);
+ new SimpleManifestPutter(pw,
core.requestStarters.chkPutScheduler, core.requestStarters.sskPutScheduler,
SimpleManifestPutter.bucketsByNameToManifestEntries(bucketsByName),
priorityClass, insertURI, defaultName, getInserterContext(true), false, this,
false);
putter.start();
return pw.waitForCompletion();
}
Modified: trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
2006-10-04 12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
2006-10-04 18:41:49 UTC (rev 10599)
@@ -3,6 +3,8 @@
import java.lang.ref.WeakReference;
import java.util.ArrayList;
+import freenet.support.Logger;
+
/**
* Keeps a queue of SingleBlockInserter's to encode.
* Encodes them.
@@ -22,6 +24,7 @@
WeakReference ref = new WeakReference(sbi);
synchronized(this) {
queue.add(ref);
+ Logger.minor(this, "Queueing encode of "+sbi);
notifyAll();
}
}
@@ -32,6 +35,7 @@
if(sbis[i] == null) continue;
if(sbis[i].isFinished()) continue;
if(sbis[i].resultingURI != null) continue;
+ Logger.minor(this, "Queueing encode of
"+sbis[i]);
WeakReference ref = new WeakReference(sbis[i]);
queue.add(ref);
}
@@ -56,6 +60,7 @@
if(sbi != null) break;
}
}
+ Logger.minor(this, "Encoding "+sbi);
if(sbi.isFinished()) continue;
if(sbi.resultingURI != null) continue;
sbi.tryEncode();
Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -62,11 +62,11 @@
this.targetFilename = targetFilename;
}
- public void start() throws InserterException {
- start(false);
+ public void start(boolean earlyEncode) throws InserterException {
+ start(earlyEncode, false);
}
- public boolean start(boolean restart) throws InserterException {
+ public boolean start(boolean earlyEncode, boolean restart) throws
InserterException {
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Starting "+this);
try {
@@ -86,7 +86,7 @@
cancel = this.cancelled;
if(!cancel) {
currentState =
- new SingleFileInserter(this,
this, new InsertBlock(data, cm, targetURI), isMetadata, ctx, false, getCHKOnly,
false, null, false, false, targetFilename);
+ new SingleFileInserter(this,
this, new InsertBlock(data, cm, targetURI), isMetadata, ctx, false, getCHKOnly,
false, null, false, false, targetFilename, earlyEncode);
}
}
if(cancel) {
@@ -224,8 +224,8 @@
return true;
}
- public boolean restart() throws InserterException {
- return start(true);
+ public boolean restart(boolean earlyEncode) throws InserterException {
+ return start(earlyEncode, true);
}
-
+
}
Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
2006-10-04 12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
2006-10-04 18:41:49 UTC (rev 10599)
@@ -37,7 +37,7 @@
InsertBlock block =
new InsertBlock(data, cm,
FreenetURI.EMPTY_CHK_URI);
this.origSFI =
- new SingleFileInserter(this, this, block,
false, ctx, false, getCHKOnly, true, null, false, false, null);
+ new SingleFileInserter(this, this, block,
false, ctx, false, getCHKOnly, true, null, false, false, null, earlyEncode);
metadata = null;
}
@@ -202,10 +202,11 @@
private int bytesOnZip;
private LinkedList elementsToPutInZip;
private boolean fetchable;
+ private final boolean earlyEncode;
public SimpleManifestPutter(ClientCallback cb, ClientRequestScheduler
chkSched,
ClientRequestScheduler sskSched, HashMap
manifestElements, short prioClass, FreenetURI target,
- String defaultName, InserterContext ctx, boolean
getCHKOnly, Object clientContext) throws InserterException {
+ String defaultName, InserterContext ctx, boolean
getCHKOnly, Object clientContext, boolean earlyEncode) throws InserterException
{
super(prioClass, chkSched, sskSched, clientContext);
logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.defaultName = defaultName;
@@ -213,6 +214,7 @@
this.cb = cb;
this.ctx = ctx;
this.getCHKOnly = getCHKOnly;
+ this.earlyEncode = earlyEncode;
putHandlersByName = new HashMap();
runningPutHandlers = new HashSet();
putHandlersWaitingForMetadata = new HashSet();
@@ -432,7 +434,7 @@
block = new InsertBlock(bucket, null, targetURI);
try {
SingleFileInserter metadataInserter =
- new SingleFileInserter(this, this, block,
isMetadata, ctx, false, getCHKOnly, false, baseMetadata,
insertAsArchiveManifest, true, null);
+ new SingleFileInserter(this, this, block,
isMetadata, ctx, false, getCHKOnly, false, baseMetadata,
insertAsArchiveManifest, true, null, earlyEncode);
if(logMINOR) Logger.minor(this, "Inserting main
metadata: "+metadataInserter);
this.metadataPuttersByMetadata.put(baseMetadata,
metadataInserter);
metadataPuttersUnfetchable.put(baseMetadata,
metadataInserter);
@@ -457,7 +459,7 @@
InsertBlock ib = new InsertBlock(b, null,
FreenetURI.EMPTY_CHK_URI);
SingleFileInserter metadataInserter =
- new SingleFileInserter(this, this, ib,
true, ctx, false, getCHKOnly, false, m, false, true, null);
+ new SingleFileInserter(this, this, ib,
true, ctx, false, getCHKOnly, false, m, false, true, null, earlyEncode);
if(logMINOR) Logger.minor(this, "Inserting
subsidiary metadata: "+metadataInserter+" for "+m);
synchronized(this) {
this.metadataPuttersByMetadata.put(m,
metadataInserter);
Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-10-04 12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-10-04 18:41:49 UTC (rev 10599)
@@ -49,6 +49,7 @@
public final Object token;
private final boolean freeData; // this is being set, but never read ???
private final String targetFilename;
+ private final boolean earlyEncode;
/**
* @param parent
@@ -62,12 +63,14 @@
* @param insertAsArchiveManifest If true, insert the metadata as an
archive manifest.
* @param freeData If true, free the data when possible.
* @param targetFilename
+ * @param earlyEncode If true, try to get a URI as quickly as possible.
* @throws InserterException
*/
SingleFileInserter(BaseClientPutter parent, PutCompletionCallback cb,
InsertBlock block,
boolean metadata, InserterContext ctx, boolean
dontCompress,
boolean getCHKOnly, boolean reportMetadataOnly, Object
token, boolean insertAsArchiveManifest,
- boolean freeData, String targetFilename) throws
InserterException {
+ boolean freeData, String targetFilename, boolean
earlyEncode) throws InserterException {
+ this.earlyEncode = earlyEncode;
this.reportMetadataOnly = reportMetadataOnly;
this.token = token;
this.parent = parent;
@@ -253,12 +256,14 @@
SplitFileInserter sfi = new SplitFileInserter(parent,
cb, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest, false);
cb.onTransition(this, sfi);
sfi.start();
+ if(earlyEncode) sfi.forceEncode();
} else {
SplitHandler sh = new SplitHandler();
SplitFileInserter sfi = new SplitFileInserter(parent,
sh, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest, false);
sh.sfi = sfi;
cb.onTransition(this, sh);
sfi.start();
+ if(earlyEncode) sfi.forceEncode();
}
}
@@ -286,11 +291,15 @@
throw new
InserterException(InserterException.INVALID_URI, e, null);
}
} else {
- return new SingleBlockInserter(parent, data,
compressionCodec, uri, ctx, cb, isMetadata, sourceLength, token,
- getCHKOnly, addToParent, false, this.token);
+ SingleBlockInserter sbi =
+ new SingleBlockInserter(parent, data,
compressionCodec, uri, ctx, cb, isMetadata, sourceLength, token,
+ getCHKOnly, addToParent, false,
this.token);
+ cb.onEncode(sbi.getBlock().getClientKey(), this);
+ return sbi;
}
+
}
-
+
/**
* When we get the metadata, start inserting it to our target key.
* When we have inserted both the metadata and the splitfile,
@@ -480,8 +489,10 @@
InsertBlock newBlock = new InsertBlock(metadataBucket,
null, block.desiredURI);
try {
synchronized(this) {
- metadataPutter = new
SingleFileInserter(parent, this, newBlock, true, ctx, false, getCHKOnly, false,
token, false, true, metaPutterTargetFilename);
- if(!dataFetchable) return;
+ metadataPutter = new
SingleFileInserter(parent, this, newBlock, true, ctx, false, getCHKOnly, false,
token, false, true, metaPutterTargetFilename, earlyEncode);
+ // If EarlyEncode, then start the
metadata insert ASAP, to get the key.
+ // Otherwise, wait until the data is
fetchable (to improve persistence).
+ if(!(dataFetchable || earlyEncode))
return;
}
if(logMINOR) Logger.minor(this, "Putting
metadata on "+metadataPutter+" from "+sfi+"
("+((SplitFileInserter)sfi).getLength()+")");
} catch (InserterException e1) {
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-10-04 12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-10-04 18:41:49 UTC (rev 10599)
@@ -42,6 +42,7 @@
private boolean fetchable;
public final Object token;
final boolean insertAsArchiveManifest;
+ private boolean forceEncode;
public SimpleFieldSet getProgressFieldset() {
SimpleFieldSet fs = new SimpleFieldSet();
@@ -228,12 +229,19 @@
public void encodedSegment(SplitFileInserterSegment segment) {
if(logMINOR) Logger.minor(this, "Encoded segment
"+segment.segNo+" of "+this);
+ boolean ret = false;
+ boolean encode;
synchronized(this) {
+ encode = forceEncode;
for(int i=0;i<segments.length;i++) {
- if((segments[i] == null) ||
!segments[i].isEncoded())
- return;
+ if((segments[i] == null) ||
!segments[i].isEncoded()) {
+ ret = true;
+ break;
+ }
}
}
+ if(encode) segment.forceEncode();
+ if(ret) return;
cb.onBlockSetFinished(this);
if(countDataBlocks > 32)
parent.onMajorProgress();
@@ -439,6 +447,9 @@
/** Force the remaining blocks which haven't been encoded so far to be
encoded ASAP. */
public void forceEncode() {
Logger.minor(this, "Forcing encode on "+this);
+ synchronized(this) {
+ forceEncode = true;
+ }
for(int i=0;i<segments.length;i++) {
segments[i].forceEncode();
}
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -193,7 +193,7 @@
Bucket copiedBucket =
core.persistentEncryptedTempBucketFactory.makeBucket(file.getData().size());
BucketTools.copy(file.getData(), copiedBucket);
try {
- ClientPut clientPut = new
ClientPut(fcp.getGlobalClient(), insertURI, identifier, Integer.MAX_VALUE,
RequestStarter.BULK_SPLITFILE_PRIORITY_CLASS, ClientRequest.PERSIST_FOREVER,
null, false, !compress, -1, ClientPutMessage.UPLOAD_FROM_DIRECT, null,
file.getContentType(), copiedBucket, null, fnam);
+ ClientPut clientPut = new
ClientPut(fcp.getGlobalClient(), insertURI, identifier, Integer.MAX_VALUE,
RequestStarter.BULK_SPLITFILE_PRIORITY_CLASS, ClientRequest.PERSIST_FOREVER,
null, false, !compress, -1, ClientPutMessage.UPLOAD_FROM_DIRECT, null,
file.getContentType(), copiedBucket, null, fnam, false);
clientPut.start();
fcp.forceStorePersistentRequests();
} catch (IdentifierCollisionException e) {
@@ -207,7 +207,7 @@
String identifier = file.getName() + "-fred-" +
System.currentTimeMillis();
String contentType =
DefaultMIMETypes.guessMIMEType(filename, false);
try {
- ClientPut clientPut = new
ClientPut(fcp.getGlobalClient(), new FreenetURI("CHK@"), identifier,
Integer.MAX_VALUE, RequestStarter.BULK_SPLITFILE_PRIORITY_CLASS,
ClientRequest.PERSIST_FOREVER, null, false, false, -1,
ClientPutMessage.UPLOAD_FROM_DISK, file, contentType, new FileBucket(file,
true, false, false, false), null, file.getName());
+ ClientPut clientPut = new
ClientPut(fcp.getGlobalClient(), new FreenetURI("CHK@"), identifier,
Integer.MAX_VALUE, RequestStarter.BULK_SPLITFILE_PRIORITY_CLASS,
ClientRequest.PERSIST_FOREVER, null, false, false, -1,
ClientPutMessage.UPLOAD_FROM_DISK, file, contentType, new FileBucket(file,
true, false, false, false), null, file.getName(), false);
clientPut.start();
fcp.forceStorePersistentRequests();
} catch (IdentifierCollisionException e) {
Modified: trunk/freenet/src/freenet/node/NodeARKInserter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeARKInserter.java 2006-10-04 12:14:30 UTC
(rev 10598)
+++ trunk/freenet/src/freenet/node/NodeARKInserter.java 2006-10-04 18:41:49 UTC
(rev 10599)
@@ -138,7 +138,7 @@
try {
- inserter.start();
+ inserter.start(false);
synchronized (this) {
if(fs.get("physical.udp") == null)
Modified: trunk/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-10-04 12:14:30 UTC
(rev 10598)
+++ trunk/freenet/src/freenet/node/fcp/ClientPut.java 2006-10-04 18:41:49 UTC
(rev 10599)
@@ -13,6 +13,7 @@
import freenet.client.MetadataUnresolvedException;
import freenet.client.async.ClientPutter;
import freenet.keys.FreenetURI;
+import freenet.support.Fields;
import freenet.support.HexUtil;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
@@ -79,8 +80,8 @@
public ClientPut(FCPClient globalClient, FreenetURI uri, String
identifier, int verbosity,
short priorityClass, short persistenceType, String
clientToken, boolean getCHKOnly,
boolean dontCompress, int maxRetries, short
uploadFromType, File origFilename, String contentType,
- Bucket data, FreenetURI redirectTarget, String
targetFilename) throws IdentifierCollisionException {
- super(uri, identifier, verbosity, null, globalClient,
priorityClass, persistenceType, null, true, getCHKOnly, dontCompress,
maxRetries);
+ Bucket data, FreenetURI redirectTarget, String
targetFilename, boolean earlyEncode) throws IdentifierCollisionException {
+ super(uri, identifier, verbosity, null, globalClient,
priorityClass, persistenceType, null, true, getCHKOnly, dontCompress,
maxRetries, earlyEncode);
this.targetFilename = targetFilename;
this.uploadFrom = uploadFromType;
this.origFilename = origFilename;
@@ -129,7 +130,7 @@
public ClientPut(FCPConnectionHandler handler, ClientPutMessage
message) throws IdentifierCollisionException {
super(message.uri, message.identifier, message.verbosity,
handler,
message.priorityClass, message.persistenceType,
message.clientToken, message.global,
- message.getCHKOnly, message.dontCompress,
message.maxRetries);
+ message.getCHKOnly, message.dontCompress,
message.maxRetries, message.earlyEncode);
this.targetFilename = message.targetFilename;
boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.uploadFrom = message.uploadFromType;
@@ -277,7 +278,7 @@
Logger.minor(this, "Starting "+this+" : "+identifier);
if(finished) return;
try {
- putter.start();
+ putter.start(earlyEncode);
started = true;
if(persistenceType != PERSIST_CONNECTION && !finished) {
FCPMessage msg = persistentTagMessage();
@@ -319,6 +320,7 @@
}
if(targetFilename != null)
fs.put("TargetFilename", targetFilename);
+ fs.put("EarlyEncode", Boolean.toString(earlyEncode));
return fs;
}
@@ -381,7 +383,7 @@
if(!canRestart()) return false;
setVarsRestart();
try {
- if(putter.restart()) {
+ if(putter.restart(earlyEncode)) {
synchronized(this) {
generatedURI = null;
started = true;
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutBase.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -48,27 +48,32 @@
// Probably saving it would conflict with later changes (full
persistence at
// ClientPutter level).
private FCPMessage progressMessage;
+
+ /** Whether to force an early generation of the CHK */
+ protected final boolean earlyEncode;
public ClientPutBase(FreenetURI uri, String identifier, int verbosity,
FCPConnectionHandler handler,
short priorityClass, short persistenceType, String
clientToken, boolean global, boolean getCHKOnly,
- boolean dontCompress, int maxRetries) {
+ boolean dontCompress, int maxRetries, boolean
earlyEncode) {
super(uri, identifier, verbosity, handler, priorityClass,
persistenceType, clientToken, global);
this.getCHKOnly = getCHKOnly;
ctx = new InserterContext(client.defaultInsertContext, new
SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
ctx.dontCompress = dontCompress;
ctx.eventProducer.addEventListener(this);
ctx.maxInsertRetries = maxRetries;
+ this.earlyEncode = earlyEncode;
}
public ClientPutBase(FreenetURI uri, String identifier, int verbosity,
FCPConnectionHandler handler,
FCPClient client, short priorityClass, short
persistenceType, String clientToken, boolean global,
- boolean getCHKOnly, boolean dontCompress, int
maxRetries) {
+ boolean getCHKOnly, boolean dontCompress, int
maxRetries, boolean earlyEncode) {
super(uri, identifier, verbosity, handler, client,
priorityClass, persistenceType, clientToken, global);
this.getCHKOnly = getCHKOnly;
ctx = new InserterContext(client.defaultInsertContext, new
SimpleEventProducer(), persistenceType == ClientRequest.PERSIST_CONNECTION);
ctx.dontCompress = dontCompress;
ctx.eventProducer.addEventListener(this);
ctx.maxInsertRetries = maxRetries;
+ this.earlyEncode = earlyEncode;
}
public ClientPutBase(SimpleFieldSet fs, FCPClient client2) throws
MalformedURLException {
@@ -89,6 +94,7 @@
generatedURI = new FreenetURI(genURI);
if(finished && (!succeeded))
putFailedMessage = new
PutFailedMessage(fs.subset("PutFailed"), false);
+ earlyEncode = Fields.stringToBool(fs.get("EarlyEncode"), false);
}
public void onLostConnection() {
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -36,7 +36,7 @@
HashMap manifestElements) throws
IdentifierCollisionException {
super(message.uri, message.identifier, message.verbosity,
handler,
message.priorityClass, message.persistenceType,
message.clientToken, message.global,
- message.getCHKOnly, message.dontCompress,
message.maxRetries);
+ message.getCHKOnly, message.dontCompress,
message.maxRetries, message.earlyEncode);
logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.manifestElements = manifestElements;
this.defaultName = message.defaultName;
@@ -62,7 +62,7 @@
SimpleManifestPutter p;
try {
p = new SimpleManifestPutter(this,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler,
- manifestElements, priorityClass, uri,
defaultName, ctx, getCHKOnly, client);
+ manifestElements, priorityClass, uri,
defaultName, ctx, getCHKOnly, client, earlyEncode);
} catch (InserterException e) {
onFailure(e, null);
p = null;
@@ -135,7 +135,7 @@
try {
if(!finished)
p = new SimpleManifestPutter(this,
client.core.requestStarters.chkPutScheduler,
client.core.requestStarters.sskPutScheduler,
- manifestElements,
priorityClass, uri, defaultName, ctx, getCHKOnly, client);
+ manifestElements,
priorityClass, uri, defaultName, ctx, getCHKOnly, client, earlyEncode);
} catch (InserterException e) {
onFailure(e, null);
p = null;
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDirMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDirMessage.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDirMessage.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -39,6 +39,7 @@
final String clientToken;
final boolean global;
final String defaultName;
+ final boolean earlyEncode;
public ClientPutDirMessage(SimpleFieldSet fs) throws
MessageInvalidException {
identifier = fs.get("Identifier");
@@ -110,6 +111,7 @@
throw new
MessageInvalidException(ProtocolErrorMessage.ERROR_PARSING_NUMBER, "Error
parsing Persistence field: "+persistenceString, identifier);
}
clientToken = fs.get("ClientToken");
+ earlyEncode = Fields.stringToBool(fs.get("EarlyEncode"), false);
}
public SimpleFieldSet getFieldSet() {
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutMessage.java 2006-10-04
12:14:30 UTC (rev 10598)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutMessage.java 2006-10-04
18:41:49 UTC (rev 10599)
@@ -8,6 +8,7 @@
import freenet.node.Node;
import freenet.node.RequestStarter;
import freenet.support.Fields;
+import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
import freenet.support.io.Bucket;
import freenet.support.io.BucketFactory;
@@ -53,6 +54,7 @@
final FreenetURI redirectTarget;
/** Filename (hint for the final filename) */
final String targetFilename;
+ final boolean earlyEncode;
public static final short UPLOAD_FROM_DIRECT = 0;
public static final short UPLOAD_FROM_DISK = 1;
@@ -186,6 +188,7 @@
targetFilename = fnam;
else
targetFilename = null;
+ earlyEncode = Fields.stringToBool(fs.get("EarlyEncode"), false);
}
public SimpleFieldSet getFieldSet() {