Author: toad
Date: 2008-03-19 16:40:07 +0000 (Wed, 19 Mar 2008)
New Revision: 18612
Modified:
trunk/freenet/src/freenet/node/NodeDispatcher.java
trunk/freenet/src/freenet/node/SSKInsertHandler.java
Log:
Factor the message parsing back into NodeDispatcher
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-03-19 16:37:19 UTC
(rev 18611)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-03-19 16:40:07 UTC
(rev 18612)
@@ -389,7 +389,11 @@
}
long now = System.currentTimeMillis();
if(m.getSpec().equals(DMT.FNPSSKInsertRequest)) {
- SSKInsertHandler rh = new SSKInsertHandler(m, source,
id, node, now);
+ NodeSSK key = (NodeSSK)
m.getObject(DMT.FREENET_ROUTING_KEY);
+ byte[] data = ((ShortBuffer) m.getObject(DMT.DATA)).getData();
+ byte[] headers = ((ShortBuffer)
m.getObject(DMT.BLOCK_HEADERS)).getData();
+ short htl = m.getShort(DMT.HTL);
+ SSKInsertHandler rh = new SSKInsertHandler(m, key,
data, headers, htl, source, id, node, now);
node.executor.execute(rh, "SSKInsertHandler for "+id+"
on "+node.getDarknetPortNumber());
} else {
CHKInsertHandler rh = new CHKInsertHandler(m, source,
id, node, now);
Modified: trunk/freenet/src/freenet/node/SSKInsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertHandler.java 2008-03-19
16:37:19 UTC (rev 18611)
+++ trunk/freenet/src/freenet/node/SSKInsertHandler.java 2008-03-19
16:40:07 UTC (rev 18612)
@@ -44,19 +44,17 @@
private byte[] headers;
private boolean canCommit;
- SSKInsertHandler(Message req, PeerNode source, long id, Node node, long
startTime) {
+ SSKInsertHandler(Message req, NodeSSK key, byte[] data, byte[] headers,
short htl, PeerNode source, long id, Node node, long startTime) {
this.req = req;
this.node = node;
this.uid = id;
this.source = source;
this.startTime = startTime;
- key = (NodeSSK) req.getObject(DMT.FREENET_ROUTING_KEY);
- htl = req.getShort(DMT.HTL);
+ this.key = key;
+ this.htl = htl;
if(htl <= 0) htl = 1;
byte[] pubKeyHash = key.getPubKeyHash();
pubKey = node.getKey(pubKeyHash);
- data = ((ShortBuffer) req.getObject(DMT.DATA)).getData();
- headers = ((ShortBuffer) req.getObject(DMT.BLOCK_HEADERS)).getData();
canCommit = false;
logMINOR = Logger.shouldLog(Logger.MINOR, this);
receivedBytes(req.receivedByteCount());