diff --git a/session.go b/session.go index 7c68f65c9..18c7976bc 100644 --- a/session.go +++ b/session.go @@ -608,7 +608,6 @@ runLoop: // nothing to see here. case <-sendQueueAvailable: case firstPacket := <-s.receivedPackets: - s.sentPacketHandler.ReceivedBytes(firstPacket.Size()) wasProcessed := s.handlePacketImpl(firstPacket) // Don't set timers and send packets if the packet made us close the session. select { @@ -830,6 +829,8 @@ func (s *session) handleHandshakeComplete() { } func (s *session) handlePacketImpl(rp *receivedPacket) bool { + s.sentPacketHandler.ReceivedBytes(rp.Size()) + if wire.IsVersionNegotiationPacket(rp.data) { s.handleVersionNegotiationPacket(rp) return false diff --git a/session_test.go b/session_test.go index 31681ca7d..082ce9078 100644 --- a/session_test.go +++ b/session_test.go @@ -2592,6 +2592,7 @@ var _ = Describe("Client Session", func() { It("closes and returns the right error", func() { sph := mockackhandler.NewMockSentPacketHandler(mockCtrl) sess.sentPacketHandler = sph + sph.EXPECT().ReceivedBytes(gomock.Any()) sph.EXPECT().PeekPacketNumber(protocol.EncryptionInitial).Return(protocol.PacketNumber(128), protocol.PacketNumberLen4) sess.config.Versions = []protocol.VersionNumber{1234, 4321} errChan := make(chan error, 1) @@ -2690,6 +2691,7 @@ var _ = Describe("Client Session", func() { sph := mockackhandler.NewMockSentPacketHandler(mockCtrl) sess.sentPacketHandler = sph sph.EXPECT().ResetForRetry() + sph.EXPECT().ReceivedBytes(gomock.Any()) cryptoSetup.EXPECT().ChangeConnectionID(protocol.ConnectionID{0xde, 0xad, 0xbe, 0xef}) packer.EXPECT().SetToken([]byte("foobar")) tracer.EXPECT().ReceivedRetry(gomock.Any()).Do(func(hdr *wire.Header) { @@ -2976,6 +2978,7 @@ var _ = Describe("Client Session", func() { It("ignores Initial packets which use original source id, after accepting a Retry", func() { sph := mockackhandler.NewMockSentPacketHandler(mockCtrl) sess.sentPacketHandler = sph + sph.EXPECT().ReceivedBytes(gomock.Any()).Times(2) sph.EXPECT().ResetForRetry() newSrcConnID := protocol.ConnectionID{0xde, 0xad, 0xbe, 0xef} cryptoSetup.EXPECT().ChangeConnectionID(newSrcConnID)