set the qlogger as a member variable on the client

This commit is contained in:
Marten Seemann
2020-04-10 12:20:08 +07:00
parent 5bd6252616
commit 6ba147119d

View File

@@ -46,6 +46,7 @@ type client struct {
session quicSession session quicSession
qlogger qlog.Tracer
logger utils.Logger logger utils.Logger
} }
@@ -178,13 +179,12 @@ func dialContext(
} }
c.packetHandlers = packetHandlers c.packetHandlers = packetHandlers
var qlogger qlog.Tracer
if c.config.GetLogWriter != nil { if c.config.GetLogWriter != nil {
if w := c.config.GetLogWriter(c.destConnID); w != nil { if w := c.config.GetLogWriter(c.destConnID); w != nil {
qlogger = qlog.NewTracer(w, protocol.PerspectiveClient, c.destConnID) c.qlogger = qlog.NewTracer(w, protocol.PerspectiveClient, c.destConnID)
} }
} }
if err := c.dial(ctx, qlogger); err != nil { if err := c.dial(ctx); err != nil {
return nil, err return nil, err
} }
return c.session, nil return c.session, nil
@@ -247,10 +247,10 @@ func newClient(
return c, nil return c, nil
} }
func (c *client) dial(ctx context.Context, qlogger qlog.Tracer) error { func (c *client) dial(ctx context.Context) error {
c.logger.Infof("Starting new connection to %s (%s -> %s), source connection ID %s, destination connection ID %s, version %s", c.tlsConf.ServerName, c.conn.LocalAddr(), c.conn.RemoteAddr(), c.srcConnID, c.destConnID, c.version) c.logger.Infof("Starting new connection to %s (%s -> %s), source connection ID %s, destination connection ID %s, version %s", c.tlsConf.ServerName, c.conn.LocalAddr(), c.conn.RemoteAddr(), c.srcConnID, c.destConnID, c.version)
if qlogger != nil { if c.qlogger != nil {
qlogger.StartedConnection(c.conn.LocalAddr(), c.conn.LocalAddr(), c.version, c.srcConnID, c.destConnID) c.qlogger.StartedConnection(c.conn.LocalAddr(), c.conn.LocalAddr(), c.version, c.srcConnID, c.destConnID)
} }
c.mutex.Lock() c.mutex.Lock()
@@ -264,7 +264,7 @@ func (c *client) dial(ctx context.Context, qlogger qlog.Tracer) error {
c.initialPacketNumber, c.initialPacketNumber,
c.initialVersion, c.initialVersion,
c.use0RTT, c.use0RTT,
qlogger, c.qlogger,
c.logger, c.logger,
c.version, c.version,
) )
@@ -295,7 +295,7 @@ func (c *client) dial(ctx context.Context, qlogger qlog.Tracer) error {
return ctx.Err() return ctx.Err()
case err := <-errorChan: case err := <-errorChan:
if err == errCloseForRecreating { if err == errCloseForRecreating {
return c.dial(ctx, qlogger) return c.dial(ctx)
} }
return err return err
case <-earlySessionChan: case <-earlySessionChan: