From b412ed6d30bf03e13b446388fc2a55b80d28426f Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 11 Feb 2020 13:22:11 +0700 Subject: [PATCH] add a command line option to the example client to export a key log file --- example/client/main.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/example/client/main.go b/example/client/main.go index 5935e23eb..8f2c6a3d1 100644 --- a/example/client/main.go +++ b/example/client/main.go @@ -8,6 +8,7 @@ import ( "io" "log" "net/http" + "os" "sync" "github.com/lucas-clemente/quic-go/http3" @@ -18,6 +19,7 @@ import ( func main() { verbose := flag.Bool("v", false, "verbose") quiet := flag.Bool("q", false, "don't print the data") + keyLogFile := flag.String("keylog", "", "key log file") insecure := flag.Bool("insecure", false, "skip certificate verification") flag.Parse() urls := flag.Args() @@ -31,6 +33,16 @@ func main() { } logger.SetLogTimeFormat("") + var keyLog *os.File + if len(*keyLogFile) > 0 { + var err error + keyLog, err = os.Create(*keyLogFile) + if err != nil { + log.Fatal(err) + } + defer keyLog.Close() + } + pool, err := x509.SystemCertPool() if err != nil { log.Fatal(err) @@ -40,6 +52,7 @@ func main() { TLSClientConfig: &tls.Config{ RootCAs: pool, InsecureSkipVerify: *insecure, + KeyLogWriter: keyLog, }, } defer roundTripper.Close()