From 89728126ccd12e452cb4ae0922f09cda469dcac8 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 12 Feb 2020 11:48:31 +0700 Subject: [PATCH] move function to create the TLS key log file to a separate file --- interop/client/main.go | 20 ++++++++++---------- interop/server/main.go | 18 ++++++++---------- interop/utils/logging.go | 19 +++++++++++++++++++ 3 files changed, 37 insertions(+), 20 deletions(-) create mode 100644 interop/utils/logging.go diff --git a/interop/client/main.go b/interop/client/main.go index b7858ea97..90c748d04 100644 --- a/interop/client/main.go +++ b/interop/client/main.go @@ -11,10 +11,12 @@ import ( "os" "strings" + "golang.org/x/sync/errgroup" + "github.com/lucas-clemente/quic-go/http3" "github.com/lucas-clemente/quic-go/internal/protocol" "github.com/lucas-clemente/quic-go/interop/http09" - "golang.org/x/sync/errgroup" + "github.com/lucas-clemente/quic-go/interop/utils" ) var errUnsupported = errors.New("unsupported test case") @@ -30,15 +32,13 @@ func main() { defer logFile.Close() log.SetOutput(logFile) - var keyLog io.Writer - if filename := os.Getenv("SSLKEYLOGFILE"); len(filename) > 0 { - f, err := os.Create(filename) - if err != nil { - fmt.Printf("Could not create key log file: %s\n", err.Error()) - os.Exit(1) - } - defer f.Close() - keyLog = f + keyLog, err := utils.GetSSLKeyLog() + if err != nil { + fmt.Printf("Could not create key log: %s\n", err.Error()) + os.Exit(1) + } + if keyLog != nil { + defer keyLog.Close() } tlsConf = &tls.Config{ diff --git a/interop/server/main.go b/interop/server/main.go index c31866765..bdaee82d6 100644 --- a/interop/server/main.go +++ b/interop/server/main.go @@ -3,7 +3,6 @@ package main import ( "crypto/tls" "fmt" - "io" "log" "net" "net/http" @@ -13,6 +12,7 @@ import ( "github.com/lucas-clemente/quic-go/http3" "github.com/lucas-clemente/quic-go/internal/testdata" "github.com/lucas-clemente/quic-go/interop/http09" + "github.com/lucas-clemente/quic-go/interop/utils" ) var tlsConf *tls.Config @@ -26,15 +26,13 @@ func main() { defer logFile.Close() log.SetOutput(logFile) - var keyLog io.Writer - if filename := os.Getenv("SSLKEYLOGFILE"); len(filename) > 0 { - f, err := os.Create(filename) - if err != nil { - fmt.Printf("Could not create key log file: %s\n", err.Error()) - os.Exit(1) - } - defer f.Close() - keyLog = f + keyLog, err := utils.GetSSLKeyLog() + if err != nil { + fmt.Printf("Could not create key log: %s\n", err.Error()) + os.Exit(1) + } + if keyLog != nil { + defer keyLog.Close() } testcase := os.Getenv("TESTCASE") diff --git a/interop/utils/logging.go b/interop/utils/logging.go new file mode 100644 index 000000000..11e4e897e --- /dev/null +++ b/interop/utils/logging.go @@ -0,0 +1,19 @@ +package utils + +import ( + "io" + "os" +) + +// GetSSLKeyLog creates a file for the TLS key log +func GetSSLKeyLog() (io.WriteCloser, error) { + filename := os.Getenv("SSLKEYLOGFILE") + if len(filename) == 0 { + return nil, nil + } + f, err := os.Create(filename) + if err != nil { + return nil, err + } + return f, nil +}