Merge pull request #2648 from lucas-clemente/fix-qlog-nil-writecloser

fix crash when the qlog callbacks returns a nil io.WriteCloser
This commit is contained in:
Marten Seemann
2020-07-07 19:03:39 +07:00
committed by GitHub
2 changed files with 535 additions and 522 deletions

View File

@@ -31,11 +31,17 @@ func NewTracer(getLogWriter func(connectionID []byte) io.WriteCloser) logging.Tr
} }
func (t *tracer) TracerForServer(odcid protocol.ConnectionID) logging.ConnectionTracer { func (t *tracer) TracerForServer(odcid protocol.ConnectionID) logging.ConnectionTracer {
return newTracer(t.getLogWriter(odcid.Bytes()), protocol.PerspectiveServer, odcid) if w := t.getLogWriter(odcid.Bytes()); w != nil {
return newConnectionTracer(w, protocol.PerspectiveServer, odcid)
}
return nil
} }
func (t *tracer) TracerForClient(odcid protocol.ConnectionID) logging.ConnectionTracer { func (t *tracer) TracerForClient(odcid protocol.ConnectionID) logging.ConnectionTracer {
return newTracer(t.getLogWriter(odcid.Bytes()), protocol.PerspectiveClient, odcid) if w := t.getLogWriter(odcid.Bytes()); w != nil {
return newConnectionTracer(w, protocol.PerspectiveClient, odcid)
}
return nil
} }
type connectionTracer struct { type connectionTracer struct {
@@ -57,7 +63,7 @@ type connectionTracer struct {
var _ logging.ConnectionTracer = &connectionTracer{} var _ logging.ConnectionTracer = &connectionTracer{}
// newTracer creates a new connectionTracer to record a qlog. // newTracer creates a new connectionTracer to record a qlog.
func newTracer(w io.WriteCloser, p protocol.Perspective, odcid protocol.ConnectionID) logging.ConnectionTracer { func newConnectionTracer(w io.WriteCloser, p protocol.Perspective, odcid protocol.ConnectionID) logging.ConnectionTracer {
t := &connectionTracer{ t := &connectionTracer{
w: w, w: w,
perspective: p, perspective: p,

File diff suppressed because it is too large Load Diff