Author: toad
Date: 2008-04-11 14:43:15 +0000 (Fri, 11 Apr 2008)
New Revision: 19180

Modified:
   trunk/freenet/src/freenet/node/PacketSender.java
Log:
Make sure the disconnect message gets through when disconnecting a seednode.

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2008-04-11 14:32:12 UTC 
(rev 19179)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2008-04-11 14:43:15 UTC 
(rev 19180)
@@ -209,8 +209,10 @@
                        lastReceivedPacketFromAnyNode =
                                Math.max(pn.lastReceivedPacketTime(), 
lastReceivedPacketFromAnyNode);
                        pn.maybeOnConnect();
+                       boolean sendEverything = false;
                        if(pn.shouldDisconnectAndRemoveNow() && 
!pn.isDisconnecting()) {
                                node.peers.disconnect(pn, true, false);
+                               sendEverything = true;
                        }

                        if(pn.isConnected()) {
@@ -300,7 +302,7 @@
                                                        l = 
messages[j].submitted;
                                                sz += 2 + /* FIXME only 2? */ 
messages[j].getData(pn).length;
                                        }
-                                       if(node.enablePacketCoalescing && (l + 
MAX_COALESCING_DELAY > now) &&
+                                       if((!sendEverything) && 
node.enablePacketCoalescing && (l + MAX_COALESCING_DELAY > now) &&
                                                (sz < ((PacketSocketHandler) 
pn.getSocketHandler()).getPacketSendThreshold())) {
                                                // Don't send immediately
                                                if(nextActionTime > (l + 
MAX_COALESCING_DELAY))


Reply via email to