forked from quic-go/quic-go
change AckHandler interfaces to allow forcing a StopWaitingFrame
ref #259
This commit is contained in:
@@ -13,7 +13,7 @@ type SentPacketHandler interface {
|
||||
SentPacket(packet *ackhandlerlegacy.Packet) error
|
||||
ReceivedAck(ackFrame *frames.AckFrame, withPacketNumber protocol.PacketNumber) error
|
||||
|
||||
GetStopWaitingFrame() *frames.StopWaitingFrame
|
||||
GetStopWaitingFrame(force bool) *frames.StopWaitingFrame
|
||||
|
||||
MaybeQueueRTOs()
|
||||
DequeuePacketForRetransmission() (packet *ackhandlerlegacy.Packet)
|
||||
|
||||
@@ -265,8 +265,8 @@ func (h *sentPacketHandler) GetLeastUnacked() protocol.PacketNumber {
|
||||
return h.largestInOrderAcked() + 1
|
||||
}
|
||||
|
||||
func (h *sentPacketHandler) GetStopWaitingFrame() *frames.StopWaitingFrame {
|
||||
return h.stopWaitingManager.GetStopWaitingFrame(false)
|
||||
func (h *sentPacketHandler) GetStopWaitingFrame(force bool) *frames.StopWaitingFrame {
|
||||
return h.stopWaitingManager.GetStopWaitingFrame(force)
|
||||
}
|
||||
|
||||
func (h *sentPacketHandler) CongestionAllowsSending() bool {
|
||||
|
||||
@@ -614,12 +614,12 @@ var _ = Describe("SentPacketHandler", func() {
|
||||
ack := frames.AckFrame{LargestAcked: 5, LowestAcked: 5}
|
||||
err := handler.ReceivedAck(&ack, 1)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(handler.GetStopWaitingFrame()).To(Equal(&frames.StopWaitingFrame{LeastUnacked: 6}))
|
||||
Expect(handler.GetStopWaitingFrame(false)).To(Equal(&frames.StopWaitingFrame{LeastUnacked: 6}))
|
||||
})
|
||||
|
||||
It("gets a StopWaitingFrame after queueing a retransmission", func() {
|
||||
handler.queuePacketForRetransmission(getPacketElement(5))
|
||||
Expect(handler.GetStopWaitingFrame()).To(Equal(&frames.StopWaitingFrame{LeastUnacked: 6}))
|
||||
Expect(handler.GetStopWaitingFrame(false)).To(Equal(&frames.StopWaitingFrame{LeastUnacked: 6}))
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -12,7 +12,7 @@ type SentPacketHandler interface {
|
||||
SentPacket(packet *Packet) error
|
||||
ReceivedAck(ackFrame *frames.AckFrame, withPacketNumber protocol.PacketNumber) error
|
||||
|
||||
GetStopWaitingFrame() *frames.StopWaitingFrame
|
||||
GetStopWaitingFrame(force bool) *frames.StopWaitingFrame
|
||||
|
||||
MaybeQueueRTOs()
|
||||
DequeuePacketForRetransmission() (packet *Packet)
|
||||
|
||||
@@ -304,7 +304,7 @@ func (h *sentPacketHandler) GetLeastUnacked() protocol.PacketNumber {
|
||||
return h.highestInOrderAckedPacketNumber + 1
|
||||
}
|
||||
|
||||
func (h *sentPacketHandler) GetStopWaitingFrame() *frames.StopWaitingFrame {
|
||||
func (h *sentPacketHandler) GetStopWaitingFrame(force bool) *frames.StopWaitingFrame {
|
||||
panic("Legacy AckHandler should use StopWaitingManager")
|
||||
}
|
||||
|
||||
|
||||
@@ -494,7 +494,7 @@ func (s *Session) sendPacket() error {
|
||||
stopWaitingFrame = s.stopWaitingManager.GetStopWaitingFrame()
|
||||
} else {
|
||||
if ack != nil || hasRetransmission {
|
||||
stopWaitingFrame = s.sentPacketHandler.GetStopWaitingFrame()
|
||||
stopWaitingFrame = s.sentPacketHandler.GetStopWaitingFrame(false)
|
||||
}
|
||||
}
|
||||
packet, err := s.packer.PackPacket(stopWaitingFrame, controlFrames, s.sentPacketHandler.GetLeastUnacked(), maySendOnlyAck)
|
||||
|
||||
@@ -59,7 +59,7 @@ func (h *mockSentPacketHandler) ReceivedAck(ackFrame *frames.AckFrame, withPacke
|
||||
}
|
||||
func (h *mockSentPacketHandler) BytesInFlight() protocol.ByteCount { return 0 }
|
||||
func (h *mockSentPacketHandler) GetLeastUnacked() protocol.PacketNumber { return 1 }
|
||||
func (h *mockSentPacketHandler) GetStopWaitingFrame() *frames.StopWaitingFrame {
|
||||
func (h *mockSentPacketHandler) GetStopWaitingFrame(force bool) *frames.StopWaitingFrame {
|
||||
h.requestedStopWaiting = true
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user