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);