Author: toad
Date: 2008-03-06 16:02:12 +0000 (Thu, 06 Mar 2008)
New Revision: 18395
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
Log:
Return the size of the actual sent packet from processOutgoingPreformatted etc.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-06
15:52:43 UTC (rev 18394)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-06
16:02:12 UTC (rev 18395)
@@ -2253,7 +2253,7 @@
/* (non-Javadoc)
* @see
freenet.node.OutgoingPacketMangler#processOutgoingPreformatted(byte[], int,
int, freenet.node.KeyTracker, int, freenet.node.AsyncMessageCallback[], int)
*/
- public void processOutgoingPreformatted(byte[] buf, int offset, int
length, KeyTracker tracker, int packetNumber, AsyncMessageCallback[] callbacks,
int alreadyReportedBytes, short priority) throws KeyChangedException,
NotConnectedException, PacketSequenceException, WouldBlockException {
+ public int processOutgoingPreformatted(byte[] buf, int offset, int
length, KeyTracker tracker, int packetNumber, AsyncMessageCallback[] callbacks,
int alreadyReportedBytes, short priority) throws KeyChangedException,
NotConnectedException, PacketSequenceException, WouldBlockException {
if(logMINOR) {
String log =
"processOutgoingPreformatted("+Fields.hashCode(buf)+", "+offset+ ',' +length+
',' +tracker+ ',' +packetNumber+ ',';
if(callbacks == null) log += "null";
@@ -2463,8 +2463,9 @@
if(logMINOR) Logger.minor(this, "Sending... "+seqNumber);
- processOutgoingFullyFormatted(plaintext, tracker,
alreadyReportedBytes);
+ int ret = processOutgoingFullyFormatted(plaintext, tracker,
alreadyReportedBytes);
if(logMINOR) Logger.minor(this, "Sent packet "+seqNumber);
+ return ret;
}
/**
@@ -2472,12 +2473,12 @@
* @param plaintext The packet's plaintext, including all formatting,
* including acks and resend requests. Is clobbered.
*/
- private void processOutgoingFullyFormatted(byte[] plaintext, KeyTracker
kt, int alreadyReportedBytes) {
+ private int processOutgoingFullyFormatted(byte[] plaintext, KeyTracker
kt, int alreadyReportedBytes) {
BlockCipher sessionCipher = kt.sessionCipher;
if(logMINOR) Logger.minor(this, "Encrypting with
"+HexUtil.bytesToHex(kt.sessionKey));
if(sessionCipher == null) {
Logger.error(this, "Dropping packet send - have not
handshaked yet");
- return;
+ return 0;
}
int blockSize = sessionCipher.getBlockSize() >> 3;
if(sessionCipher.getKeySize() != sessionCipher.getBlockSize())
@@ -2532,6 +2533,7 @@
Logger.error(this, "Tried to send data packet to local
address: "+kt.pn.getPeer()+" for "+kt.pn.allowLocalAddresses());
}
kt.pn.sentPacket();
+ return output.length + sock.getHeadersLength();
}
/* (non-Javadoc)
Modified: trunk/freenet/src/freenet/node/OutgoingPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2008-03-06
15:52:43 UTC (rev 18394)
+++ trunk/freenet/src/freenet/node/OutgoingPacketMangler.java 2008-03-06
16:02:12 UTC (rev 18395)
@@ -59,8 +59,9 @@
* @throws KeyChangedException If the primary key changes while we are
trying to send this packet.
* @throws PacketSequenceException
* @throws WouldBlockException If we cannot allocate a packet number
because it would block.
+ * @return The size of the sent packet.
*/
- public void processOutgoingPreformatted(byte[] buf, int offset, int
length,
+ public int processOutgoingPreformatted(byte[] buf, int offset, int
length,
KeyTracker tracker, int packetNumber,
AsyncMessageCallback[] callbacks, int
alreadyReportedBytes, short priority)
throws KeyChangedException, NotConnectedException,