Author: mrogers
Date: 2006-08-03 21:34:20 +0000 (Thu, 03 Aug 2006)
New Revision: 9873

Modified:
   trunk/apps/load-balancing-sims/phase5-out-of-order/Peer.java
Log:
Oops - don't deliver duplicate packets

Modified: trunk/apps/load-balancing-sims/phase5-out-of-order/Peer.java
===================================================================
--- trunk/apps/load-balancing-sims/phase5-out-of-order/Peer.java        
2006-08-03 19:42:01 UTC (rev 9872)
+++ trunk/apps/load-balancing-sims/phase5-out-of-order/Peer.java        
2006-08-03 21:34:20 UTC (rev 9873)
@@ -172,10 +172,9 @@
                }
                else if (p.seq < rxSeq + MAX_INFLIGHT) {
                        log ("packet out of order - expected " + rxSeq);
-                       rxDupe.add (p.seq);
-                       // Deliver the packet
-                       unpack (p);
-                       sendAck (p.seq);
+                       if (rxDupe.add (p.seq)) unpack (p);
+                       else log ("duplicate packet");
+                       sendAck (p.seq); // Original ack may have been lost
                }
                // This indicates a misbehaving sender - discard the packet
                else log ("warning: received " + p.seq + " before " + rxSeq);


Reply via email to