From 1713d38576c9de8d4bac836a572f6dea83de4105 Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Sun, 14 Aug 2016 15:54:03 +0200 Subject: [PATCH] add an ackhandler consistency check that fails the drop tests --- ackhandler/sent_packet_handler.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ackhandler/sent_packet_handler.go b/ackhandler/sent_packet_handler.go index 358e14dc..4a9abec4 100644 --- a/ackhandler/sent_packet_handler.go +++ b/ackhandler/sent_packet_handler.go @@ -2,6 +2,7 @@ package ackhandler import ( "errors" + "fmt" "time" "github.com/lucas-clemente/quic-go/ackhandlerlegacy" @@ -227,6 +228,9 @@ func (h *sentPacketHandler) ReceivedAck(ackFrame *frames.AckFrame, withPacketNum } if packetNumber >= ackRange.FirstPacketNumber { // packet i contained in ACK range + if packetNumber > ackRange.LastPacketNumber { + return fmt.Errorf("BUG: ackhandler would have acked wrong packet 0x%x, while evaluating range 0x%x -> 0x%x", packetNumber, ackRange.FirstPacketNumber, ackRange.LastPacketNumber) + } p := h.ackPacket(el) if p != nil { ackedPackets = append(ackedPackets, congestion.PacketInfo{Number: p.PacketNumber, Length: p.Length})