Author: toad
Date: 2007-10-26 23:17:05 +0000 (Fri, 26 Oct 2007)
New Revision: 15607
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
don't send packets with the packet number and the key tracker potentially
incompatible. once allocated a packet number, use the same tracker used to
allocate it.
if the tracker is changed, we will need to allocate a new packet number on the
new tracker.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-10-26
22:42:41 UTC (rev 15606)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-10-26
23:17:05 UTC (rev 15607)
@@ -1707,6 +1707,8 @@
}
realSeqNumber = seqNumber + (decrypted[ptr++] & 0xff);
}
+ if(logMINOR)
+ Logger.minor(this, "Real sequence number:
"+realSeqNumber);
//Logger.minor(this, "Reference seq number:
"+HexUtil.bytesToHex(decrypted, ptr, 4));
@@ -1846,14 +1848,13 @@
if(mi.formatted) {
try {
byte[] buf = mi.getData(pn);
- kt = pn.getCurrentKeyTracker();
if(kt == null) {
if(logMINOR) Logger.minor(this,
"kt = null");
pn.requeueMessageItems(messages, i, messages.length-i, false, "kt = null");
return;
}
int packetNumber =
kt.allocateOutgoingPacketNumberNeverBlock();
- this.processOutgoingPreformatted(buf,
0, buf.length, pn.getCurrentKeyTracker(), packetNumber, mi.cb,
mi.alreadyReportedBytes);
+ this.processOutgoingPreformatted(buf,
0, buf.length, kt, packetNumber, mi.cb, mi.alreadyReportedBytes);
mi.onSent(buf.length +
fullHeadersLengthOneMessage);
} catch (NotConnectedException e) {
Logger.normal(this, "Caught "+e+" while
sending messages ("+mi_name+") to "+pn.getPeer()+requeueLogString);