diff --git a/connection.go b/connection.go index 2b1947010..b891b1b1d 100644 --- a/connection.go +++ b/connection.go @@ -1086,10 +1086,7 @@ func (s *connection) handleRetryPacket(hdr *wire.Header, data []byte, rcvTime ti newDestConnID := hdr.SrcConnectionID s.receivedRetry = true - if err := s.sentPacketHandler.ResetForRetry(rcvTime); err != nil { - s.closeLocal(err) - return false - } + s.sentPacketHandler.ResetForRetry(rcvTime) s.handshakeDestConnID = newDestConnID s.retrySrcConnID = &newDestConnID s.cryptoStreamHandler.ChangeConnectionID(newDestConnID) diff --git a/internal/ackhandler/interfaces.go b/internal/ackhandler/interfaces.go index ba8cbbdae..24d696031 100644 --- a/internal/ackhandler/interfaces.go +++ b/internal/ackhandler/interfaces.go @@ -16,7 +16,7 @@ type SentPacketHandler interface { ReceivedAck(f *wire.AckFrame, encLevel protocol.EncryptionLevel, rcvTime time.Time) (bool /* 1-RTT packet acked */, error) ReceivedBytes(protocol.ByteCount) DropPackets(protocol.EncryptionLevel) - ResetForRetry(rcvTime time.Time) error + ResetForRetry(rcvTime time.Time) SetHandshakeConfirmed() // The SendMode determines if and what kind of packets can be sent. diff --git a/internal/ackhandler/sent_packet_handler.go b/internal/ackhandler/sent_packet_handler.go index 8f44d9883..d528e6c07 100644 --- a/internal/ackhandler/sent_packet_handler.go +++ b/internal/ackhandler/sent_packet_handler.go @@ -864,7 +864,7 @@ func (h *sentPacketHandler) queueFramesForRetransmission(p *packet) { p.Frames = nil } -func (h *sentPacketHandler) ResetForRetry(now time.Time) error { +func (h *sentPacketHandler) ResetForRetry(now time.Time) { h.bytesInFlight = 0 var firstPacketSendTime time.Time h.initialPackets.history.Iterate(func(p *packet) (bool, error) { @@ -911,7 +911,6 @@ func (h *sentPacketHandler) ResetForRetry(now time.Time) error { } } h.ptoCount = 0 - return nil } func (h *sentPacketHandler) SetHandshakeConfirmed() { diff --git a/internal/ackhandler/sent_packet_handler_test.go b/internal/ackhandler/sent_packet_handler_test.go index 1b8472340..a215c0390 100644 --- a/internal/ackhandler/sent_packet_handler_test.go +++ b/internal/ackhandler/sent_packet_handler_test.go @@ -1325,16 +1325,13 @@ var _ = Describe("SentPacketHandler", func() { perspective = protocol.PerspectiveClient }) - It("considers the server's address validated right away", func() { - }) - It("queues outstanding packets for retransmission, cancels alarms and resets PTO count when receiving a Retry", func() { sentPacket(initialPacket(&packet{PacketNumber: 42})) Expect(handler.GetLossDetectionTimeout()).ToNot(BeZero()) Expect(handler.bytesInFlight).ToNot(BeZero()) Expect(handler.SendMode(time.Now())).To(Equal(SendAny)) // now receive a Retry - Expect(handler.ResetForRetry(time.Now())).To(Succeed()) + handler.ResetForRetry(time.Now()) Expect(lostPackets).To(Equal([]protocol.PacketNumber{42})) Expect(handler.bytesInFlight).To(BeZero()) Expect(handler.GetLossDetectionTimeout()).To(BeZero()) @@ -1369,7 +1366,7 @@ var _ = Describe("SentPacketHandler", func() { }) Expect(handler.bytesInFlight).ToNot(BeZero()) // now receive a Retry - Expect(handler.ResetForRetry(time.Now())).To(Succeed()) + handler.ResetForRetry(time.Now()) Expect(handler.bytesInFlight).To(BeZero()) Expect(lostInitial).To(BeTrue()) Expect(lost0RTT).To(BeTrue()) @@ -1390,7 +1387,7 @@ var _ = Describe("SentPacketHandler", func() { EncryptionLevel: protocol.EncryptionInitial, SendTime: now.Add(500 * time.Millisecond), })) - Expect(handler.ResetForRetry(now.Add(time.Second))).To(Succeed()) + handler.ResetForRetry(now.Add(time.Second)) Expect(handler.rttStats.SmoothedRTT()).To(Equal(time.Second)) }) @@ -1406,7 +1403,7 @@ var _ = Describe("SentPacketHandler", func() { EncryptionLevel: protocol.EncryptionInitial, SendTime: now.Add(2 * time.Millisecond), })) - Expect(handler.ResetForRetry(now.Add(4 * time.Millisecond))).To(Succeed()) + handler.ResetForRetry(now.Add(4 * time.Millisecond)) Expect(minRTTAfterRetry).To(BeNumerically(">", 4*time.Millisecond)) Expect(handler.rttStats.SmoothedRTT()).To(Equal(minRTTAfterRetry)) }) @@ -1425,7 +1422,7 @@ var _ = Describe("SentPacketHandler", func() { EncryptionLevel: protocol.EncryptionInitial, SendTime: now.Add(500 * time.Millisecond), })) - Expect(handler.ResetForRetry(now.Add(time.Second))).To(Succeed()) + handler.ResetForRetry(now.Add(time.Second)) Expect(handler.rttStats.SmoothedRTT()).To(BeZero()) }) }) diff --git a/internal/mocks/ackhandler/sent_packet_handler.go b/internal/mocks/ackhandler/sent_packet_handler.go index 84ca35ace..b6118712b 100644 --- a/internal/mocks/ackhandler/sent_packet_handler.go +++ b/internal/mocks/ackhandler/sent_packet_handler.go @@ -384,11 +384,9 @@ func (c *MockSentPacketHandlerReceivedBytesCall) DoAndReturn(f func(protocol.Byt } // ResetForRetry mocks base method. -func (m *MockSentPacketHandler) ResetForRetry(rcvTime time.Time) error { +func (m *MockSentPacketHandler) ResetForRetry(rcvTime time.Time) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResetForRetry", rcvTime) - ret0, _ := ret[0].(error) - return ret0 + m.ctrl.Call(m, "ResetForRetry", rcvTime) } // ResetForRetry indicates an expected call of ResetForRetry. @@ -404,19 +402,19 @@ type MockSentPacketHandlerResetForRetryCall struct { } // Return rewrite *gomock.Call.Return -func (c *MockSentPacketHandlerResetForRetryCall) Return(arg0 error) *MockSentPacketHandlerResetForRetryCall { - c.Call = c.Call.Return(arg0) +func (c *MockSentPacketHandlerResetForRetryCall) Return() *MockSentPacketHandlerResetForRetryCall { + c.Call = c.Call.Return() return c } // Do rewrite *gomock.Call.Do -func (c *MockSentPacketHandlerResetForRetryCall) Do(f func(time.Time) error) *MockSentPacketHandlerResetForRetryCall { +func (c *MockSentPacketHandlerResetForRetryCall) Do(f func(time.Time)) *MockSentPacketHandlerResetForRetryCall { c.Call = c.Call.Do(f) return c } // DoAndReturn rewrite *gomock.Call.DoAndReturn -func (c *MockSentPacketHandlerResetForRetryCall) DoAndReturn(f func(time.Time) error) *MockSentPacketHandlerResetForRetryCall { +func (c *MockSentPacketHandlerResetForRetryCall) DoAndReturn(f func(time.Time)) *MockSentPacketHandlerResetForRetryCall { c.Call = c.Call.DoAndReturn(f) return c }