Update of /cvsroot/freenet/freenet/src/freenet/client
In directory sc8-pr-cvs1:/tmp/cvs-serv25857/src/freenet/client
Modified Files:
Tag: stable
AutoBackoffNodeRequester.java AutoRequester.java
ClientCore.java ClientEventListener.java
ClientMessageHandler.java ClientSVK.java
ControlRequestProcess.java FCPClient.java FNPClient.java
FreenetURI.java GetRequestProcess.java InternalClient.java
PutRequestProcess.java RequestManager.java
Log Message:
5029: Merge from unstable after months of work. MASSIVE changes.
Highlights:
* Next Generation Routing, massive related changes
* Major changes to handling of messages and connections (PeerHandler and related
changes)
* Even more non-blocking I/O
* Documentation improvements
* Lots of new diagnostics and config options
* Lots of bug fixes and performance tweaking
* Probably lots of new bugs too!
Index: AutoBackoffNodeRequester.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/AutoBackoffNodeRequester.java,v
retrieving revision 1.3.2.3.2.4
retrieving revision 1.3.2.3.2.5
diff -u -w -r1.3.2.3.2.4 -r1.3.2.3.2.5
--- AutoBackoffNodeRequester.java 12 Jul 2003 01:50:22 -0000 1.3.2.3.2.4
+++ AutoBackoffNodeRequester.java 28 Oct 2003 20:20:23 -0000 1.3.2.3.2.5
@@ -49,7 +49,7 @@
this.hopsToLive = hopsToLive;
this.uri = uri;
this.inserting = inserting;
- logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
Core.logger.log(this, "Starting internal request: "+uri,
Core.logger.MINOR);
}
Index: AutoRequester.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/AutoRequester.java,v
retrieving revision 1.6.4.11.2.12
retrieving revision 1.6.4.11.2.13
diff -u -w -r1.6.4.11.2.12 -r1.6.4.11.2.13
--- AutoRequester.java 23 Jul 2003 01:56:50 -0000 1.6.4.11.2.12
+++ AutoRequester.java 28 Oct 2003 20:20:24 -0000 1.6.4.11.2.13
@@ -182,7 +182,7 @@
// Not all RequestProcess implementations abort
// immediately. Hunt down and clean up the
// important ones.
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG) Core.logger.log(this, "Cancelling current request process",
Logger.DEBUG);
currentRequestProcess.abort();
@@ -607,7 +607,7 @@
return false;
}
currentRequestProcess = rp;
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "Starting process: "+rp+" for "+this,
Logger.DEBUG);
currentClient = null;
@@ -641,7 +641,7 @@
finished = false;
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG) Core.logger.log(this, "executeProcess() on "+this+" at "+
System.currentTimeMillis(), Logger.DEBUG);
@@ -697,7 +697,7 @@
}
private boolean endValue(RequestProcess rp) {
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG) Core.logger.log(this, "endValue("+rp+") on "+this,
Logger.DEBUG);
if(rp == null)
@@ -725,7 +725,7 @@
// hack only works if none of the
// requests spawn threads.
// Hmmm... I think I put this hack in.
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG) Core.logger.log(this, "handleNextRequest() on "+
this, Logger.DEBUG);
removeListeners(prevRequest);
@@ -765,7 +765,7 @@
volatile boolean finished = false;
private void doFinish(boolean success) {
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "doFinish("+success+") for "+
this, Logger.DEBUG);
requestSucceeded = success;
@@ -776,7 +776,7 @@
}
private void cleanFinish() {
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "Cleanly Finished Request "+this,
Logger.DEBUG);
@@ -796,7 +796,7 @@
removeListeners(curRequest);
error = "Request failed due to error: " + t;
origThrowable = t;
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "RequestProcess: "+currentRequestProcess+
" failed with error: "+t+" for "+this, t,
Logger.DEBUG);
@@ -804,7 +804,7 @@
}
private void onReachedState(StateReachedEvent sr) {
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "Got StateReachedEvent: "+sr.getDescription()+" for
"+
this, Logger.DEBUG);
if(currentRequestProcess == null) {
@@ -847,7 +847,7 @@
private class AutoListener extends DoneListener {
public void receive(ClientEvent ce) {
- if(Core.logger.shouldLog(Logger.DEBUG)) {
+ if(Core.logger.shouldLog(Logger.DEBUG,this)) {
Core.logger.log(this, "Received event: "+ce.getDescription()+
" for "+toString(), new Exception("debug"),
Logger.DEBUG);
Index: ClientCore.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/ClientCore.java,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -u -w -r1.4 -r1.4.4.1
--- ClientCore.java 28 Oct 2002 00:42:56 -0000 1.4
+++ ClientCore.java 28 Oct 2003 20:20:24 -0000 1.4.4.1
@@ -45,7 +45,7 @@
throws ListenException {
DSAAuthentity auth = new DSAAuthentity(Global.DSAgroupC,
- Core.randSource);
+ Core.getRandSource());
return newInstance(auth, myAddress, lm, p);
}
Index: ClientEventListener.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/ClientEventListener.java,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.6.1
diff -u -w -r1.1.1.1 -r1.1.1.1.6.1
--- ClientEventListener.java 13 Jan 2002 05:24:04 -0000 1.1.1.1
+++ ClientEventListener.java 28 Oct 2003 20:20:24 -0000 1.1.1.1.6.1
@@ -1,7 +1,7 @@
package freenet.client;
/**
- * Event handeling for clients.
+ * Event handling for clients.
*
* @author oskar
**/
@@ -10,7 +10,7 @@
public interface ClientEventListener {
/**
- * Hears and event.
+ * Hears an event.
**/
public void receive(ClientEvent ce);
Index: ClientMessageHandler.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/ClientMessageHandler.java,v
retrieving revision 1.2.4.1.2.1
retrieving revision 1.2.4.1.2.2
diff -u -w -r1.2.4.1.2.1 -r1.2.4.1.2.2
--- ClientMessageHandler.java 4 Jul 2003 02:45:05 -0000 1.2.4.1.2.1
+++ ClientMessageHandler.java 28 Oct 2003 20:20:24 -0000 1.2.4.1.2.2
@@ -56,8 +56,12 @@
* Message it is put in a queue and can be checked out with getNextReply.
* Non Message MessageObjects are ignored.
* @param mo The MessageObject to handle.
+ * @param onlyIfCanRunFast Must be true.
+ * @returns true.
+ * @see MessageHandler
**/
- public void handle(MessageObject mo) {
+ public boolean handle(MessageObject mo, boolean onlyIfCanRunFast) {
+ if(onlyIfCanRunFast) return false;
if (mo instanceof ClientMessageObject) {
MessageQueue mq = getQueue(mo.id());
synchronized(mq) {
@@ -67,6 +71,7 @@
} else {
Core.logger.log(this,"Got a MessageObject that I can't handle: " +
mo,Logger.NORMAL);
}
+ return true;
}
/**
Index: ClientSVK.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/ClientSVK.java,v
retrieving revision 1.1.1.1.4.2.2.2
retrieving revision 1.1.1.1.4.2.2.3
diff -u -w -r1.1.1.1.4.2.2.2 -r1.1.1.1.4.2.2.3
--- ClientSVK.java 3 Jul 2003 01:37:22 -0000 1.1.1.1.4.2.2.2
+++ ClientSVK.java 28 Oct 2003 20:20:24 -0000 1.1.1.1.4.2.2.3
@@ -43,8 +43,8 @@
protected SVK svk;
protected byte[] cryptoKey;
protected String docName;
- protected DSAPrivateKey sk;
- protected DSAPublicKey pk;
+ protected DSAPrivateKey sk; //Should always be set to the private key for the
public key below
+ protected DSAPublicKey pk; //Should always be set to the public key for the
private key above
public ClientSVK(byte[] val, byte[] cryptoKey, String docName)
throws KeyException {
@@ -137,7 +137,7 @@
storables.setDocumentName(Util.hashString(SHA1.getInstance(),
getDocumentName()));
}
- storables.sign(r, sk, pk.getGroup());
+ storables.sign(r, sk, pk);
svk = new SVK(storables, SVK.SVK_LOG2_MAXSIZE);
return ret;
}
Index: ControlRequestProcess.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/ControlRequestProcess.java,v
retrieving revision 1.3.4.3.2.2
retrieving revision 1.3.4.3.2.3
diff -u -w -r1.3.4.3.2.2 -r1.3.4.3.2.3
--- ControlRequestProcess.java 1 Jul 2003 02:27:11 -0000 1.3.4.3.2.2
+++ ControlRequestProcess.java 28 Oct 2003 20:20:24 -0000 1.3.4.3.2.3
@@ -149,6 +149,6 @@
}
public String toString() {
- return getClass().getName() + ":"+uri+"@"+htl+","+nextLevel;
+ return super.toString() + ":"+uri+"@"+htl+","+nextLevel;
}
}
Index: FCPClient.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/FCPClient.java,v
retrieving revision 1.7.4.3.2.4
retrieving revision 1.7.4.3.2.5
diff -u -w -r1.7.4.3.2.4 -r1.7.4.3.2.5
--- FCPClient.java 22 Apr 2003 20:07:28 -0000 1.7.4.3.2.4
+++ FCPClient.java 28 Oct 2003 20:20:24 -0000 1.7.4.3.2.5
@@ -389,7 +389,7 @@
RawMessage m = getResponse();
if (m.messageType.equals("Restarted")) {
long time = (m.fs.get("Timeout") == null
- ? -1 : Fields.stringToLong(m.fs.get("Timeout")));
+ ? -1 : Fields.hexToLong(m.fs.get("Timeout")));
return false;
}
else if (!m.messageType.equals("DataChunk")) {
@@ -403,7 +403,7 @@
// got DataChunk
long size;
try {
- size = Fields.stringToLong(m.fs.get("Length"));
+ size = Fields.hexToLong(m.fs.get("Length"));
}
catch (Exception e) {
throw new TerminalMessageException(
@@ -827,7 +827,7 @@
}
else if (m.messageType.equals("Restarted")) {
long time = (m.fs.get("Timeout") == null
- ? -1 : Fields.stringToLong(m.fs.get("Timeout")));
+ ? -1 : Fields.hexToLong(m.fs.get("Timeout")));
req.produceEvent(new RestartedEvent(time));
}
else if (m.messageType.equals("DataNotFound")) {
@@ -876,14 +876,14 @@
long dlen, mlen;
try {
- dlen = Fields.stringToLong(fs.get("DataLength"));
+ dlen = Fields.hexToLong(fs.get("DataLength"));
}
catch (Exception e) {
throw new TerminalMessageException("bad DataLength field in
DataFound");
}
try {
if (fs.get("MetadataLength") != null)
- mlen = Fields.stringToLong(fs.get("MetadataLength"));
+ mlen = Fields.hexToLong(fs.get("MetadataLength"));
else
mlen = 0;
}
@@ -916,7 +916,7 @@
RawMessage m = getResponse();
if (m.messageType.equals("Restarted")) {
long time = (m.fs.get("Timeout") == null
- ? -1 : Fields.stringToLong(m.fs.get("Timeout")));
+ ? -1 : Fields.hexToLong(m.fs.get("Timeout")));
req.produceEvent(new RestartedEvent(time));
return false;
}
@@ -931,7 +931,7 @@
// got DataChunk
long size;
try {
- size = Fields.stringToLong(m.fs.get("Length"));
+ size = Fields.hexToLong(m.fs.get("Length"));
}
catch (Exception e) {
throw new TerminalMessageException(
@@ -1322,10 +1322,10 @@
int i;
for (i = 0; i < req.headers.length; i++) {
// Write header
- RawMessage m = req.headers[i].toRawMessage(protocol);
+ RawMessage m = req.headers[i].toRawMessage(protocol,null);
m.writeMessage(dataOut);
// Write map
- m = req.maps[i].toRawMessage(protocol);
+ m = req.maps[i].toRawMessage(protocol,null);
m.writeMessage(dataOut);
}
dataOut.close();
@@ -1482,7 +1482,7 @@
}
private final static void dumpHeader(SegmentHeader header, Bucket bucket) throws
IOException {
- RawMessage m = header.toRawMessage(protocol);
+ RawMessage m = header.toRawMessage(protocol,null);
OutputStream o = null;
try {
o = bucket.getOutputStream();
Index: FNPClient.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/FNPClient.java,v
retrieving revision 1.3.4.1.2.3
retrieving revision 1.3.4.1.2.4
diff -u -w -r1.3.4.1.2.3 -r1.3.4.1.2.4
--- FNPClient.java 1 Jul 2003 02:27:11 -0000 1.3.4.1.2.3
+++ FNPClient.java 28 Oct 2003 20:20:24 -0000 1.3.4.1.2.4
@@ -51,7 +51,7 @@
protected FNPClient(ClientCore core, BucketFactory ctBuckets) {
this.core = core;
this.ctBuckets = ctBuckets;
- vc = new VirtualClient(null, core.randSource, ctBuckets);
+ vc = new VirtualClient(null, core.getRandSource(), ctBuckets);
}
protected FNPClient(ClientCore core) {
@@ -102,7 +102,7 @@
BInstance(Request req) throws KeyException {
this.req = req;
- id = core.randSource.nextLong();
+ id = core.getRandSource().nextLong();
}
public final void start() {
@@ -143,8 +143,11 @@
else return false;
}
- OutputStream sendMessage(Message m) throws CommunicationException {
- OutputStream out = core.makeConnection(target).sendMessage(m);
+ OutputStream sendMessage(Message m, long timeout)
+ throws CommunicationException {
+ TrailerWriter tw =
+ core.sendMessage(m, target, timeout);
+ OutputStream out = new TrailerWriterOutputStream(tw);
req.produceEvent(new SendEvent(target,m,""));
return out;
}
@@ -219,7 +222,7 @@
DataRequest dr = new DataRequest(id, req.htl, key,
core.getNodeReference());
- sendMessage(dr);
+ sendMessage(dr, Core.hopTime(1));
getResponse();
}
@@ -368,7 +371,7 @@
super(req);
this.req = req;
- ckey = AbstractClientKey.createFromInsertURI(core.randSource,
+ ckey = AbstractClientKey.createFromInsertURI(core.getRandSource(),
req.uri);
try {
ckey.setCipher(req.cipherName);
@@ -414,7 +417,7 @@
InsertRequest ir = new InsertRequest(id, req.htl, key,
core.getNodeReference());
- sendMessage(ir);
+ sendMessage(ir, Core.hopTime(1));
long waitTime = Core.hopTime(1);
boolean accepted = false, sentData = false;
@@ -450,7 +453,7 @@
DataInsert di =
new DataInsert(id, root,
ckey.getTotalLength());
- OutputStream out = sendMessage(di);
+ OutputStream out = sendMessage(di, waitTime);
req.produceEvent(new TransferStartedEvent(di.length()));
try {
writeData(out, ckey.getTotalLength());
Index: FreenetURI.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/FreenetURI.java,v
retrieving revision 1.1.1.1.4.1
retrieving revision 1.1.1.1.4.1.2.1
diff -u -w -r1.1.1.1.4.1 -r1.1.1.1.4.1.2.1
--- FreenetURI.java 14 Dec 2002 17:52:52 -0000 1.1.1.1.4.1
+++ FreenetURI.java 28 Oct 2003 20:20:24 -0000 1.1.1.1.4.1.2.1
@@ -224,11 +224,16 @@
* Returns a copy of this URI with the those meta strings appended.
*/
public FreenetURI addMetaStrings(String[] strs) {
+ if(strs == null) return this; // legal noop, since getMetaStrings can return
null
String[] newMetaStr;
if (metaStr == null)
return setMetaString(strs);
else {
- newMetaStr = new String[metaStr.length + strs.length];
+ // metaStr could be null... couldn't it? I don't really know this file..
+ // - amphibian
+ int curLen = (metaStr == null) ? 0 : metaStr.length;
+ newMetaStr = new String[curLen + strs.length];
+ if(metaStr != null)
System.arraycopy(metaStr, 0, newMetaStr, 0, metaStr.length);
System.arraycopy(strs, 0, newMetaStr, metaStr.length,
strs.length);
Index: GetRequestProcess.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/GetRequestProcess.java,v
retrieving revision 1.7.4.7.2.7
retrieving revision 1.7.4.7.2.8
diff -u -w -r1.7.4.7.2.7 -r1.7.4.7.2.8
--- GetRequestProcess.java 2 Aug 2003 02:36:18 -0000 1.7.4.7.2.7
+++ GetRequestProcess.java 28 Oct 2003 20:20:25 -0000 1.7.4.7.2.8
@@ -61,7 +61,7 @@
}
public synchronized Request getNextRequest(boolean followContainer) {
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG)
Core.logger.log(this, "In getNextRequest() for "+this, Logger.DEBUG);
if (aborted || failed) {
@@ -133,11 +133,13 @@
String mimeType=metadata.getMimeType(null);
if(mimeType != null && followContainer) {
if(mimeType.equalsIgnoreCase("application/x-java-archive")
|| mimeType.equalsIgnoreCase("application/zip")) {
+// System.err.println("Handling ZIP");
if(handleZip()) return null;
}
}
+
// Extract the checksum CHK from the info part.
// If more than one value is specified, we
// favor the one that is closest to the end
@@ -152,6 +154,7 @@
}
//System.err.println("LALA GOT MD: " + metadata);
if (follow) {
+// System.err.println("Following...");
//System.err.println("GRP L: " +
// recursionLevel +
// " uri: " + uri);
@@ -160,6 +163,7 @@
null :
metadata.getDocument(mds));
FreenetURI nuri;
+// System.err.println("d = "+d+", mds = "+mds);
if (d != null) {
nuri = uri.popMetaString();
} else {
@@ -170,8 +174,9 @@
// recursionLevel +
// " d: " + d +
// " mds: " + mds);
-
+// System.err.println("d now = "+d);
if (d != null) {
+// System.err.println("Redirecting");
r.produceEvent(new
RedirectFollowedEvent(d.getControlPart()));
next = d.getGetProcess(nuri, htl, data,
ptBuckets,
@@ -183,6 +188,7 @@
// there was a metastring left, and
// there are no more control documents
// to apply it to.
+// System.err.println("Key not found in manifest");
error = "Key not found in manifest";
origThrowable = new
KeyNotInManifestException();
@@ -190,6 +196,7 @@
return null;
}
}
+// System.err.println("Finishing");
} catch (IOException e) {
return null;
} catch (InvalidPartException e) {
@@ -238,7 +245,9 @@
return null;
}
}
+// System.err.println("Still finishing");
if (next != null) {
+// System.err.println("Almost finished");
Request rr = next.getNextRequest();
failed = next.failed();
if(failed) {
@@ -266,11 +275,14 @@
// FIXME: this is slow
// FIXME: the other version CRASHES THE JVM (1.4.1_04, 1.4.2)
String containerFile=uri.getMetaString();
+ boolean notFound = false;
// follow the jar
// Check if we need to de-container this file
// FIXME: cache jar's
+// System.err.println("Handling zip("+containerFile+")");
if(containerFile != null) {
if(data.size()>1024*1024) {
+// System.err.println("Too big");
error = "This container is too large for me to process.";
origThrowable = new
KeyNotInManifestException();
@@ -297,12 +309,12 @@
try {
ent=myJis.getNextJarEntry();
if(ent==null) {
+// System.err.println("No more entries");
if(!done) {
// No file of this name
- origThrowable = new
- KeyNotInManifestException();
- failed = true;
- return true;
+// System.err.println("No key of this name");
+ notFound = true;
+ break;
} else {
// no metadata
metadone=true;
@@ -337,30 +349,43 @@
} while(!metadone);
}
} catch (ZipException e) {
- error = "Key not found in JAR Container";
- origThrowable = new
- KeyNotInManifestException();
- failed = true;
- return true;
+ notFound = true;
+ break;
}
} while(!done || !metadone);
metadata =
new Metadata(metadataBucket.getInputStream(),
msettings);
- data.resetWrite();
- BucketTools.copy(newData, data);
+// System.err.println("After handling zip, metadata=\n"+metadata);
+ if(notFound && (metadata.getDocument(containerFile) == null)) {
+ error = "Key not found in JAR Container";
+ origThrowable = new
+ KeyNotInManifestException();
+ failed = true;
+ return true;
+ } // otherwise it's just metadata which can be handled...
+
+
if(metafound) {
+// System.err.println("Found metadata");
// check that this document exists in the metadata
// and ignore the metadata if it doens't, to prevent
// big scary monsters eating you and, more importantly,
// throwing a key not in metadata exception
//
//
+// System.err.println("metadata currently:\n"+metadata);
DocumentCommand dc=metadata.getDocument(containerFile);
+ if(dc != null) {
+// System.err.println("dc: "+dc);
metadata=new Metadata(msettings);
dc.setName("");
metadata.addDocument(dc);
+// System.err.println("metadata:\n"+metadata);
+ }
}
+ data.resetWrite();
+ BucketTools.copy(newData, data);
uri=uri.popMetaString();
}
return false;
Index: InternalClient.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/InternalClient.java,v
retrieving revision 1.10.4.5.2.8
retrieving revision 1.10.4.5.2.9
diff -u -w -r1.10.4.5.2.8 -r1.10.4.5.2.9
--- InternalClient.java 15 Aug 2003 03:05:45 -0000 1.10.4.5.2.8
+++ InternalClient.java 28 Oct 2003 20:20:25 -0000 1.10.4.5.2.9
@@ -30,7 +30,7 @@
if(node == null)
throw new IllegalArgumentException("null node pointer to "+
"InternalClient");
- vc = new VirtualClient(node, node.randSource, node.bf);
+ vc = new VirtualClient(node, node.getRandSource(), node.bf);
}
public boolean isOverloaded() {
@@ -45,13 +45,13 @@
IOException, KeyException {
if (req instanceof GetRequest) {
return new ClientMessageVector(
- new NewInternalGet(node.randSource.nextLong(),
+ new NewInternalGet(node.getRandSource().nextLong(),
new InternalGetToken((GetRequest) req))
);
}
else if (req instanceof PutRequest) {
return new ClientMessageVector(
- new NewInternalPut(node.randSource.nextLong(),
+ new NewInternalPut(node.getRandSource().nextLong(),
new InternalPutToken((PutRequest) req))
);
}
@@ -180,6 +180,9 @@
//
// Send an event to the listeners.
final void unlockedProduceEvent(ClientEvent evt) {
+ if(Core.logger.shouldLog(Logger.DEBUG, this))
+ Core.logger.log(this, "Producing event: "+evt+" ("+this+")",
+ Logger.DEBUG);
if (evt == null) {
return;
}
@@ -215,7 +218,8 @@
public void queryRejected(Node n, int htl, String reason,
FieldSet fs, int unreachable,
- int restarted, int rejected)
+ int restarted, int rejected,
+ MessageSendCallback cb)
throws SendFailedException {
ClientEvent evt = null;
synchronized (InternalFeedbackToken.this) {
@@ -228,7 +232,9 @@
unlockedProduceEvent(evt);
}
- public synchronized void restarted(Node n, long millis) throws
SendFailedException {
+ public synchronized void restarted(Node n, long millis,
+ MessageSendCallback cb)
+ throws SendFailedException {
synchronized (InternalFeedbackToken.this) {
checkAlive();
}
@@ -238,7 +244,7 @@
if(dcos.chunkPos > skipBytes) {
skipBytes = dcos.chunkPos;
if(skipBytes != 0)
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "Restarting InternalClient
request for "+clientKey+", next pass will skip first "+skipBytes, Core.logger.MINOR);
else
Core.logger.log(this, "Restarting InternalClient
request for a clientKey, next pass will skip first "+skipBytes, Core.logger.MINOR);
@@ -326,7 +332,7 @@
}
}
- public synchronized OutputStream dataFound(Node n, Storables storables,
+ public synchronized TrailerWriter dataFound(Node n, Storables storables,
long transLength)
throws SendFailedException {
Document doc;
@@ -385,7 +391,7 @@
unlockedProduceEvent(transferEvt);
unlockedProduceEvent(exceptionEvt);
unlockedProduceEvent(failedEvt);
- return ret;
+ return new OutputStreamTrailerWriter(ret);
}
}
@@ -430,8 +436,10 @@
unlockedProduceEvent(evt);
}
- public synchronized OutputStream dataFound(Node n, Storables storables,
+ public synchronized TrailerWriter dataFound(Node n, Storables storables,
long ctLength) throws
SendFailedException {
+ if(Core.logger.shouldLog(Logger.DEBUG, this))
+ Core.logger.log(this, "dataFound() on "+this, Logger.DEBUG);
ClientEvent uriEvt = null;
ClientEvent collisionEvt = null;
ClientEvent terminalEvt = null;
@@ -511,7 +519,7 @@
throw new BadStateException("Not a ClientMessageVector: "+mo);
}
- if(Core.logger.shouldLog(Logger.DEBUG))
+ if(Core.logger.shouldLog(Logger.DEBUG,this))
Core.logger.log(this, "Received: "+mo+" for "+this,
Logger.DEBUG);
@@ -548,7 +556,7 @@
this.ft = ft;
// set up ClientKey
- ft.clientKey = AbstractClientKey.createFromInsertURI(node.randSource,
ft.req.uri);
+ ft.clientKey =
AbstractClientKey.createFromInsertURI(node.getRandSource(), ft.req.uri);
try {
ft.clientKey.setCipher(ft.req.cipherName);
}
Index: PutRequestProcess.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/PutRequestProcess.java,v
retrieving revision 1.3.4.5.2.5
retrieving revision 1.3.4.5.2.6
diff -u -w -r1.3.4.5.2.5 -r1.3.4.5.2.6
--- PutRequestProcess.java 17 May 2003 19:31:10 -0000 1.3.4.5.2.5
+++ PutRequestProcess.java 28 Oct 2003 20:20:25 -0000 1.3.4.5.2.6
@@ -41,7 +41,8 @@
ms);
if(ms == null) throw new NullPointerException("ms NULL!");
this.metadata = metadata;
- // System.err.println("LALA a: " + this.metadata);
+// System.err.println("Creating PutRequestProcess (a): " +
+// this.metadata+" ("+this+"): "+descend);
this.cipherName = cipherName;
nextLevel = true; // puts start at the next level.
this.skipDS = skipDS;
@@ -51,7 +52,9 @@
if (aborted || failed)
return null;
if (nextLevel) {
- if (next == null && metadata != null) {
+ if (next == null && metadata != null && follow) {
+// System.err.println("Getting document, uri. uri="+uri+
+// ", metadata="+metadata);
DocumentCommand d =
(uri.getMetaString() == null ?
null :
@@ -67,6 +70,7 @@
next = d.getPutProcess(nuri, htl, cipherName, data,
ptBuckets, recursionLevel,
follow);
+// System.err.println("next = "+next+", d = "+d+", nuri = "+nuri);
}
//System.err.println(recursionLevel + " LALA " + next);
@@ -177,7 +181,7 @@
return null;
} else {
//System.err.println("WAITING: " + recursionLevel);
- if(Core.logger.shouldLog(Logger.DEBUG)) {
+ if(Core.logger.shouldLog(Logger.DEBUG,this)) {
Core.logger.log(this, "Waiting for "+this, Logger.DEBUG);
}
bufferEvents = true;
Index: RequestManager.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/client/RequestManager.java,v
retrieving revision 1.7.2.6.2.6
retrieving revision 1.7.2.6.2.7
diff -u -w -r1.7.2.6.2.6 -r1.7.2.6.2.7
--- RequestManager.java 4 Jul 2003 02:45:05 -0000 1.7.2.6.2.6
+++ RequestManager.java 28 Oct 2003 20:20:25 -0000 1.7.2.6.2.7
@@ -243,7 +243,7 @@
// or you may hit nasty deadlock bugs in
// internal client.
protected void cancelAll() {
- boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG);
+ boolean logDEBUG = Core.logger.shouldLog(Logger.DEBUG,this);
if(logDEBUG) Core.logger.log(this, "cancelAll()",
Logger.DEBUG); // FIXME
// REDFLAG: Send failed events for all queued requests
_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs