reset the PTO count when receiving a Retry

This commit is contained in:
Marten Seemann
2020-04-04 15:12:29 +07:00
parent dd27bce3fb
commit d1d4e5ce02
3 changed files with 14 additions and 3 deletions

View File

@@ -721,9 +721,13 @@ func (h *sentPacketHandler) ResetForRetry() error {
h.appDataPackets = newPacketNumberSpace(h.appDataPackets.pns.Pop())
oldAlarm := h.alarm
h.alarm = time.Time{}
if h.qlogger != nil && !oldAlarm.IsZero() {
h.qlogger.LossTimerCanceled()
if h.qlogger != nil {
h.qlogger.UpdatedPTOCount(0)
if !oldAlarm.IsZero() {
h.qlogger.LossTimerCanceled()
}
}
h.ptoCount = 0
return nil
}

View File

@@ -995,7 +995,7 @@ var _ = Describe("SentPacketHandler", func() {
perspective = protocol.PerspectiveClient
})
It("queues outstanding packets for retransmission and cancels alarms", func() {
It("queues outstanding packets for retransmission, cancels alarms and resets PTO count", func() {
handler.SentPacket(initialPacket(&Packet{PacketNumber: 42}))
Expect(handler.GetLossDetectionTimeout()).ToNot(BeZero())
Expect(handler.bytesInFlight).ToNot(BeZero())
@@ -1006,6 +1006,7 @@ var _ = Describe("SentPacketHandler", func() {
Expect(handler.bytesInFlight).To(BeZero())
Expect(handler.GetLossDetectionTimeout()).To(BeZero())
Expect(handler.SendMode()).To(Equal(SendAny))
Expect(handler.ptoCount).To(BeZero())
})
It("queues outstanding frames for retransmission and cancels alarms", func() {