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