Author: toad
Date: 2007-09-14 23:22:00 +0000 (Fri, 14 Sep 2007)
New Revision: 15184

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/KeyTracker.java
Log:
Always call receivedPacket() even if there is no payload.
Necessary to keep open incompatible connections in order to do Update Over 
Mandatory.
Which worked until nextgens' fix to Packet Sender; previously we would assume 
that incompatible connections are always open, and therefore it would work.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-09-14 
20:07:57 UTC (rev 15183)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-09-14 
23:22:00 UTC (rev 15184)
@@ -863,6 +863,8 @@
             tracker.destForgotPacket(realSeqNo);
         }

+               tracker.pn.receivedPacket(false); // Must keep the connection 
open, even if it's an ack packet only and on an incompatible connection - we 
may want to do a UOM transfer e.g.
+               
         if(seqNumber == -1) {
                if(logMINOR) Logger.minor(this, "Returning because seqno = 
"+seqNumber);
                return;
@@ -870,8 +872,7 @@
         // No sequence number == no messages

         if((seqNumber != -1) && tracker.alreadyReceived(seqNumber)) {
-            tracker.queueAck(seqNumber);
-                       tracker.pn.receivedPacket(false);
+            tracker.queueAck(seqNumber); // Must keep the connection open!
             Logger.error(this, "Received packet twice ("+seqNumber+") from 
"+tracker.pn.getPeer()+": "+seqNumber+" ("+TimeUtil.formatTime((long) 
tracker.pn.pingAverage.currentValue(), 2, true)+" ping avg)");
             return;
         }

Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2007-09-14 20:07:57 UTC 
(rev 15183)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2007-09-14 23:22:00 UTC 
(rev 15184)
@@ -441,8 +441,7 @@
      */
     public synchronized void receivedPacket(int seqNumber) {
         logMINOR = Logger.shouldLog(Logger.MINOR, this);
-       if(logMINOR) Logger.minor(this, "Received packet "+seqNumber);
-               pn.receivedPacket(false);
+       if(logMINOR) Logger.minor(this, "Received packet "+seqNumber+" from 
"+pn.shortToString());
         if(seqNumber == -1) return;
         // FIXME delete this log statement
         if(logMINOR) Logger.minor(this, "Still received packet: "+seqNumber);


Reply via email to