forked from quic-go/quic-go
improve errors in SentPacketHandler
This commit is contained in:
@@ -17,6 +17,11 @@ var (
|
||||
ErrMapAccess = errors.New("SentPacketHandler: Packet does not exist in PacketHistory")
|
||||
)
|
||||
|
||||
var (
|
||||
errDuplicatePacketNumber = errors.New("Packet number already exists in Packet History")
|
||||
errWrongPacketNumberIncrement = errors.New("Packet number must be increased by exactly 1")
|
||||
)
|
||||
|
||||
var (
|
||||
errAckForUnsentPacket = errors.New("SentPacketHandler: Received ACK for an unsent package")
|
||||
retransmissionThreshold = uint8(3)
|
||||
@@ -90,10 +95,10 @@ func (h *sentPacketHandler) queuePacketForRetransmission(packet *Packet) {
|
||||
func (h *sentPacketHandler) SentPacket(packet *Packet) error {
|
||||
_, ok := h.packetHistory[packet.PacketNumber]
|
||||
if ok {
|
||||
return errors.New("Packet number already exists in Packet History")
|
||||
return errDuplicatePacketNumber
|
||||
}
|
||||
if h.lastSentPacketNumber+1 != packet.PacketNumber {
|
||||
return errors.New("Packet number must be increased by exactly 1")
|
||||
return errWrongPacketNumberIncrement
|
||||
}
|
||||
packet.sendTime = time.Now()
|
||||
if packet.Length == 0 {
|
||||
|
||||
@@ -56,7 +56,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
err := handler.SentPacket(&packet1)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = handler.SentPacket(&packet2)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err).To(MatchError(errDuplicatePacketNumber))
|
||||
Expect(handler.lastSentPacketNumber).To(Equal(protocol.PacketNumber(1)))
|
||||
Expect(handler.packetHistory).To(HaveKey(protocol.PacketNumber(1)))
|
||||
Expect(handler.BytesInFlight()).To(Equal(protocol.ByteCount(1)))
|
||||
@@ -68,7 +68,7 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
err := handler.SentPacket(&packet1)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
err = handler.SentPacket(&packet2)
|
||||
Expect(err).To(HaveOccurred())
|
||||
Expect(err).To(MatchError(errWrongPacketNumberIncrement))
|
||||
Expect(handler.lastSentPacketNumber).To(Equal(protocol.PacketNumber(1)))
|
||||
Expect(handler.packetHistory).To(HaveKey(protocol.PacketNumber(1)))
|
||||
Expect(handler.packetHistory).ToNot(HaveKey(protocol.PacketNumber(2)))
|
||||
|
||||
Reference in New Issue
Block a user