diff --git a/session.go b/session.go index 67019268..6d981445 100644 --- a/session.go +++ b/session.go @@ -1204,18 +1204,19 @@ func (s *session) dropEncryptionLevel(encLevel protocol.EncryptionLevel) { } func (s *session) processTransportParameters(params *wire.TransportParameters) { - // check the Retry token - if s.perspective == protocol.PerspectiveClient && !params.OriginalConnectionID.Equal(s.origDestConnID) { - s.closeLocal(qerr.NewError(qerr.TransportParameterError, fmt.Sprintf("expected original_connection_id to equal %s, is %s", s.origDestConnID, params.OriginalConnectionID))) - return - } - if s.logger.Debug() { s.logger.Debugf("Processed Transport Parameters: %s", params) } if s.qlogger != nil { s.qlogger.ReceivedTransportParameters(params) } + + // check the Retry token + if s.perspective == protocol.PerspectiveClient && !params.OriginalConnectionID.Equal(s.origDestConnID) { + s.closeLocal(qerr.NewError(qerr.TransportParameterError, fmt.Sprintf("expected original_connection_id to equal %s, is %s", s.origDestConnID, params.OriginalConnectionID))) + return + } + s.peerParams = params // Our local idle timeout will always be > 0. s.idleTimeout = utils.MinNonZeroDuration(s.config.MaxIdleTimeout, params.MaxIdleTimeout) diff --git a/session_test.go b/session_test.go index 7b18db34..b2c7176f 100644 --- a/session_test.go +++ b/session_test.go @@ -2102,6 +2102,7 @@ var _ = Describe("Client Session", func() { StatelessResetToken: &[16]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, } expectClose() + qlogger.EXPECT().ReceivedTransportParameters(params) sess.processTransportParameters(params) Eventually(errChan).Should(Receive(MatchError("TRANSPORT_PARAMETER_ERROR: expected original_connection_id to equal (empty), is 0xdecafbad"))) }) @@ -2113,6 +2114,7 @@ var _ = Describe("Client Session", func() { StatelessResetToken: &[16]byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, } expectClose() + qlogger.EXPECT().ReceivedTransportParameters(params) sess.processTransportParameters(params) Eventually(errChan).Should(Receive(MatchError("TRANSPORT_PARAMETER_ERROR: expected original_connection_id to equal 0xdeadbeef, is 0xdecafbad"))) })