introduce a ConnectionTracingID type for the ConnectionTracingKey (#4400)

This is a breaking API change. Unfortunately, context values are not
strongly typed, so users will have have to take to change their type
assertions.
This commit is contained in:
Marten Seemann
2024-04-02 17:10:12 +13:00
committed by GitHub
parent f389b638d2
commit 27a06f32ce
6 changed files with 28 additions and 25 deletions

View File

@@ -35,7 +35,7 @@ type client struct {
conn quicConn
tracer *logging.ConnectionTracer
tracingID uint64
tracingID ConnectionTracingID
logger utils.Logger
}

View File

@@ -44,7 +44,7 @@ var _ = Describe("Client", func() {
enable0RTT bool,
hasNegotiatedVersion bool,
tracer *logging.ConnectionTracer,
tracingID uint64,
tracingID ConnectionTracingID,
logger utils.Logger,
v protocol.Version,
) quicConn
@@ -123,7 +123,7 @@ var _ = Describe("Client", func() {
enable0RTT bool,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -160,7 +160,7 @@ var _ = Describe("Client", func() {
enable0RTT bool,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -197,7 +197,7 @@ var _ = Describe("Client", func() {
_ bool,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -282,7 +282,7 @@ var _ = Describe("Client", func() {
_ bool,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
versionP protocol.Version,
) quicConn {
@@ -325,7 +325,7 @@ var _ = Describe("Client", func() {
_ bool,
hasNegotiatedVersion bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
versionP protocol.Version,
) quicConn {

View File

@@ -113,8 +113,8 @@ func (e *errCloseForRecreating) Error() string {
return "closing connection in order to recreate it"
}
var connTracingID uint64 // to be accessed atomically
func nextConnTracingID() uint64 { return atomic.AddUint64(&connTracingID, 1) }
var connTracingID atomic.Uint64 // to be accessed atomically
func nextConnTracingID() ConnectionTracingID { return ConnectionTracingID(connTracingID.Add(1)) }
// A Connection is a QUIC connection
type connection struct {
@@ -234,7 +234,7 @@ var newConnection = func(
tokenGenerator *handshake.TokenGenerator,
clientAddressValidated bool,
tracer *logging.ConnectionTracer,
tracingID uint64,
tracingID ConnectionTracingID,
logger utils.Logger,
v protocol.Version,
) quicConn {
@@ -347,7 +347,7 @@ var newClientConnection = func(
enable0RTT bool,
hasNegotiatedVersion bool,
tracer *logging.ConnectionTracer,
tracingID uint64,
tracingID ConnectionTracingID,
logger utils.Logger,
v protocol.Version,
) quicConn {

View File

@@ -59,6 +59,9 @@ var Err0RTTRejected = errors.New("0-RTT rejected")
// as well as on the context passed to logging.Tracer.NewConnectionTracer.
var ConnectionTracingKey = connTracingCtxKey{}
// ConnectionTracingID is the type of the context value saved under the ConnectionTracingKey.
type ConnectionTracingID uint64
type connTracingCtxKey struct{}
// QUICVersionContextKey can be used to find out the QUIC version of a TLS handshake from the

View File

@@ -92,7 +92,7 @@ type baseServer struct {
*handshake.TokenGenerator,
bool, /* client address validated by an address validation token */
*logging.ConnectionTracer,
uint64,
ConnectionTracingID,
utils.Logger,
protocol.Version,
) quicConn

View File

@@ -301,7 +301,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -503,7 +503,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -571,7 +571,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -626,7 +626,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -675,7 +675,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -736,7 +736,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -969,7 +969,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1036,7 +1036,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1106,7 +1106,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1176,7 +1176,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1217,7 +1217,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1272,7 +1272,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {
@@ -1394,7 +1394,7 @@ var _ = Describe("Server", func() {
_ *handshake.TokenGenerator,
_ bool,
_ *logging.ConnectionTracer,
_ uint64,
_ ConnectionTracingID,
_ utils.Logger,
_ protocol.Version,
) quicConn {