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,


Reply via email to