diff --git a/internal/ackhandler/received_packet_handler.go b/internal/ackhandler/received_packet_handler.go index 8af213245..93931b4eb 100644 --- a/internal/ackhandler/received_packet_handler.go +++ b/internal/ackhandler/received_packet_handler.go @@ -74,7 +74,7 @@ func (h *receivedPacketHandler) ReceivedPacket(packetNumber protocol.PacketNumbe } isMissing := h.isMissing(packetNumber) - if packetNumber > h.largestObserved { + if packetNumber >= h.largestObserved { h.largestObserved = packetNumber h.largestObservedReceivedTime = rcvTime } diff --git a/internal/ackhandler/received_packet_handler_test.go b/internal/ackhandler/received_packet_handler_test.go index d845efe86..7e7ddd06e 100644 --- a/internal/ackhandler/received_packet_handler_test.go +++ b/internal/ackhandler/received_packet_handler_test.go @@ -95,17 +95,17 @@ var _ = Describe("receivedPacketHandler", func() { } It("always queues an ACK for the first packet", func() { - err := handler.ReceivedPacket(1, time.Time{}, false) - Expect(err).ToNot(HaveOccurred()) + Expect(handler.ReceivedPacket(1, time.Now(), false)).To(Succeed()) Expect(handler.ackQueued).To(BeTrue()) Expect(handler.GetAlarmTimeout()).To(BeZero()) + Expect(handler.GetAckFrame().DelayTime).To(BeNumerically("~", 0, time.Second)) }) It("works with packet number 0", func() { - err := handler.ReceivedPacket(0, time.Time{}, false) - Expect(err).ToNot(HaveOccurred()) + Expect(handler.ReceivedPacket(0, time.Now(), false)).To(Succeed()) Expect(handler.ackQueued).To(BeTrue()) Expect(handler.GetAlarmTimeout()).To(BeZero()) + Expect(handler.GetAckFrame().DelayTime).To(BeNumerically("~", 0, time.Second)) }) It("queues an ACK for every second retransmittable packet at the beginning", func() {