forked from quic-go/quic-go
Merge pull request #1222 from lucas-clemente/ack-in-packet-0
accept ACKs sent in packet number 0
This commit is contained in:
@@ -157,8 +157,7 @@ func (h *sentPacketHandler) ReceivedAck(ackFrame *wire.AckFrame, withPacketNumbe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// duplicate or out-of-order ACK
|
// duplicate or out-of-order ACK
|
||||||
// if withPacketNumber <= h.largestReceivedPacketWithAck && withPacketNumber != 0 {
|
if withPacketNumber != 0 && withPacketNumber <= h.largestReceivedPacketWithAck {
|
||||||
if withPacketNumber <= h.largestReceivedPacketWithAck {
|
|
||||||
return ErrDuplicateOrOutOfOrderAck
|
return ErrDuplicateOrOutOfOrderAck
|
||||||
}
|
}
|
||||||
h.largestReceivedPacketWithAck = withPacketNumber
|
h.largestReceivedPacketWithAck = withPacketNumber
|
||||||
|
|||||||
@@ -207,6 +207,16 @@ var _ = Describe("SentPacketHandler", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Context("ACK validation", func() {
|
Context("ACK validation", func() {
|
||||||
|
It("accepts ACKs sent in packet 0", func() {
|
||||||
|
ack := wire.AckFrame{
|
||||||
|
LargestAcked: 5,
|
||||||
|
LowestAcked: 1,
|
||||||
|
}
|
||||||
|
err := handler.ReceivedAck(&ack, 0, protocol.EncryptionUnencrypted, time.Now())
|
||||||
|
Expect(err).ToNot(HaveOccurred())
|
||||||
|
Expect(handler.largestAcked).To(Equal(protocol.PacketNumber(5)))
|
||||||
|
})
|
||||||
|
|
||||||
It("rejects duplicate ACKs", func() {
|
It("rejects duplicate ACKs", func() {
|
||||||
largestAcked := 3
|
largestAcked := 3
|
||||||
ack := wire.AckFrame{
|
ack := wire.AckFrame{
|
||||||
|
|||||||
Reference in New Issue
Block a user