Author: toad
Date: 2006-11-28 01:35:50 +0000 (Tue, 28 Nov 2006)
New Revision: 11078

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
Stop sending too big packets. Stop sending packets with extra unwanted zeros at 
the end after the messages.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-11-28 
01:22:50 UTC (rev 11077)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-11-28 
01:35:50 UTC (rev 11078)
@@ -1021,7 +1021,7 @@
                        if(!dontRequeue) {
                                requeueLogString = ", requeueing remaining 
messages";
                        }
-            length = 56;
+            length = 0;
             int count = 0;
             int lastIndex = 0;
             alreadyReportedBytes = 0;
@@ -1031,7 +1031,7 @@
                 else thisLength = (messageData[i].length + 2);
                 int newLength = length + thisLength;
                 count++;
-                if((newLength > node.usm.getMaxPacketSize()) || (count > 255) 
|| (i == messages.length)) {
+                if((newLength + HEADERS_LENGTH_MINIMUM > 
node.usm.getMaxPacketSize()) || (count > 255) || (i == messages.length)) {
                     // lastIndex up to the message right before this one
                     // e.g. lastIndex = 0, i = 1, we just send message 0
                     if(lastIndex != i) {
@@ -1102,7 +1102,7 @@
             System.arraycopy(data, 0, buf, loc, len);
             loc += len;
         }
-        processOutgoingPreformatted(buf, 0, bufferLength, pn, 
neverWaitForPacketNumber, callbacks, alreadyReportedBytes);
+        processOutgoingPreformatted(buf, 0, loc, pn, neverWaitForPacketNumber, 
callbacks, alreadyReportedBytes);
     }

     /**


Reply via email to