From b45050b82441c2ea8c7a6bcbe3c11c914c3071a2 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 5 Mar 2020 09:06:31 +0700 Subject: [PATCH] remember the value of the active_connection_id_limit transport parameter --- internal/handshake/client_session_cache.go | 2 +- internal/handshake/session_ticket.go | 2 +- internal/handshake/transport_parameter_test.go | 2 ++ internal/handshake/transport_parameters.go | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/handshake/client_session_cache.go b/internal/handshake/client_session_cache.go index 43b816683..249b0c257 100644 --- a/internal/handshake/client_session_cache.go +++ b/internal/handshake/client_session_cache.go @@ -13,7 +13,7 @@ import ( "github.com/lucas-clemente/quic-go/internal/utils" ) -const clientSessionStateRevision = 1 +const clientSessionStateRevision = 2 type clientSessionCache struct { tls.ClientSessionCache diff --git a/internal/handshake/session_ticket.go b/internal/handshake/session_ticket.go index 0ca726803..9761e3410 100644 --- a/internal/handshake/session_ticket.go +++ b/internal/handshake/session_ticket.go @@ -9,7 +9,7 @@ import ( "github.com/lucas-clemente/quic-go/internal/utils" ) -const sessionTicketRevision = 1 +const sessionTicketRevision = 2 type sessionTicket struct { Parameters *TransportParameters diff --git a/internal/handshake/transport_parameter_test.go b/internal/handshake/transport_parameter_test.go index f40d92b8e..c0f4a7baf 100644 --- a/internal/handshake/transport_parameter_test.go +++ b/internal/handshake/transport_parameter_test.go @@ -316,6 +316,7 @@ var _ = Describe("Transport Parameters", func() { InitialMaxData: protocol.ByteCount(getRandomValue()), MaxBidiStreamNum: protocol.StreamNum(getRandomValue()), MaxUniStreamNum: protocol.StreamNum(getRandomValue()), + ActiveConnectionIDLimit: getRandomValue(), } Expect(params.ValidFor0RTT(params)).To(BeTrue()) b := &bytes.Buffer{} @@ -328,6 +329,7 @@ var _ = Describe("Transport Parameters", func() { Expect(tp.InitialMaxData).To(Equal(params.InitialMaxData)) Expect(tp.MaxBidiStreamNum).To(Equal(params.MaxBidiStreamNum)) Expect(tp.MaxUniStreamNum).To(Equal(params.MaxUniStreamNum)) + Expect(tp.ActiveConnectionIDLimit).To(Equal(params.ActiveConnectionIDLimit)) }) It("rejects the parameters if it can't parse them", func() { diff --git a/internal/handshake/transport_parameters.go b/internal/handshake/transport_parameters.go index 7665a7578..e811755ec 100644 --- a/internal/handshake/transport_parameters.go +++ b/internal/handshake/transport_parameters.go @@ -384,6 +384,8 @@ func (p *TransportParameters) MarshalForSessionTicket(b *bytes.Buffer) { p.marshalVarintParam(b, initialMaxStreamsBidiParameterID, uint64(p.MaxBidiStreamNum)) // initial_max_uni_streams p.marshalVarintParam(b, initialMaxStreamsUniParameterID, uint64(p.MaxUniStreamNum)) + // active_connection_id_limit + p.marshalVarintParam(b, activeConnectionIDLimitParameterID, p.ActiveConnectionIDLimit) } // UnmarshalFromSessionTicket unmarshals transport parameters from a session ticket.