diff --git a/internal/ackhandler/sent_packet_handler.go b/internal/ackhandler/sent_packet_handler.go index d542e99f..7d997ead 100644 --- a/internal/ackhandler/sent_packet_handler.go +++ b/internal/ackhandler/sent_packet_handler.go @@ -114,6 +114,9 @@ func (h *sentPacketHandler) SetHandshakeComplete() { for _, pnSpace := range []*packetNumberSpace{h.initialPackets, h.handshakePackets} { var cryptoPackets []*Packet pnSpace.history.Iterate(func(p *Packet) (bool, error) { + if p.includedInBytesInFlight { + h.bytesInFlight -= p.Length + } cryptoPackets = append(cryptoPackets, p) return true, nil }) diff --git a/internal/ackhandler/sent_packet_handler_test.go b/internal/ackhandler/sent_packet_handler_test.go index 1697691e..efc20890 100644 --- a/internal/ackhandler/sent_packet_handler_test.go +++ b/internal/ackhandler/sent_packet_handler_test.go @@ -860,11 +860,13 @@ var _ = Describe("SentPacketHandler", func() { p := ackElicitingPacket(&Packet{PacketNumber: i, EncryptionLevel: protocol.EncryptionHandshake}) handler.SentPacket(p) } + Expect(handler.bytesInFlight).ToNot(BeZero()) handler.queuePacketForRetransmission(getPacket(1, protocol.EncryptionInitial), handler.getPacketNumberSpace(protocol.EncryptionInitial)) handler.queuePacketForRetransmission(getPacket(3, protocol.EncryptionHandshake), handler.getPacketNumberSpace(protocol.EncryptionHandshake)) handler.SetHandshakeComplete() Expect(handler.initialPackets.history.Len()).To(BeZero()) Expect(handler.handshakePackets.history.Len()).To(BeZero()) + Expect(handler.bytesInFlight).To(BeZero()) packet := handler.DequeuePacketForRetransmission() Expect(packet).To(BeNil()) })