
commit f58c865d82fa5d3670c1df9a587d61450aeb664b Author: Arlo Breault <arlolra@gmail.com> Date: Fri Feb 7 15:45:26 2020 -0500 Add unsafe logging --- broker/broker.go | 10 ++++++++-- client/snowflake.go | 9 +++++++-- proxy-go/snowflake.go | 10 ++++++++-- server/server.go | 10 ++++++++-- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/broker/broker.go b/broker/broker.go index 17c677e..d9ef111 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -376,6 +376,7 @@ func main() { var certFilename, keyFilename string var disableGeoip bool var metricsFilename string + var unsafeLogging bool flag.StringVar(&acmeEmail, "acme-email", "", "optional contact email for Let's Encrypt notifications") flag.StringVar(&acmeHostnamesCommas, "acme-hostnames", "", "comma-separated hostnames for TLS certificate") @@ -388,13 +389,18 @@ func main() { flag.BoolVar(&disableTLS, "disable-tls", false, "don't use HTTPS") flag.BoolVar(&disableGeoip, "disable-geoip", false, "don't use geoip for stats collection") flag.StringVar(&metricsFilename, "metrics-log", "", "path to metrics logging output") + flag.BoolVar(&unsafeLogging, "unsafe-logging", false, "prevent logs from being scrubbed") flag.Parse() var err error var metricsFile io.Writer var logOutput io.Writer = os.Stderr - //We want to send the log output through our scrubber first - log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + if unsafeLogging { + log.SetOutput(logOutput) + } else { + // We want to send the log output through our scrubber first + log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + } log.SetFlags(log.LstdFlags | log.LUTC) diff --git a/client/snowflake.go b/client/snowflake.go index 4076fff..8acb8f3 100644 --- a/client/snowflake.go +++ b/client/snowflake.go @@ -91,6 +91,7 @@ func main() { logFilename := flag.String("log", "", "name of log file") logToStateDir := flag.Bool("logToStateDir", false, "resolve the log file relative to tor's pt state dir") keepLocalAddresses := flag.Bool("keepLocalAddresses", false, "keep local LAN address ICE candidates") + unsafeLogging := flag.Bool("unsafe-logging", false, "prevent logs from being scrubbed") max := flag.Int("max", DefaultSnowflakeCapacity, "capacity for number of multiplexed WebRTC peers") flag.Parse() @@ -119,8 +120,12 @@ func main() { defer logFile.Close() logOutput = logFile } - // We want to send the log output through our scrubber first - log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + if *unsafeLogging { + log.SetOutput(logOutput) + } else { + // We want to send the log output through our scrubber first + log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + } log.Println("\n\n\n --- Starting Snowflake Client ---") diff --git a/proxy-go/snowflake.go b/proxy-go/snowflake.go index 264d4f2..69fef9d 100644 --- a/proxy-go/snowflake.go +++ b/proxy-go/snowflake.go @@ -408,12 +408,14 @@ func main() { var stunURL string var logFilename string var rawBrokerURL string + var unsafeLogging bool flag.UintVar(&capacity, "capacity", 10, "maximum concurrent clients") flag.StringVar(&rawBrokerURL, "broker", defaultBrokerURL, "broker URL") flag.StringVar(&relayURL, "relay", defaultRelayURL, "websocket relay URL") flag.StringVar(&stunURL, "stun", defaultSTUNURL, "stun URL") flag.StringVar(&logFilename, "log", "", "log filename") + flag.BoolVar(&unsafeLogging, "unsafe-logging", false, "prevent logs from being scrubbed") flag.Parse() var logOutput io.Writer = os.Stderr @@ -426,8 +428,12 @@ func main() { defer f.Close() logOutput = io.MultiWriter(os.Stderr, f) } - //We want to send the log output through our scrubber first - log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + if unsafeLogging { + log.SetOutput(logOutput) + } else { + // We want to send the log output through our scrubber first + log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + } log.Println("starting") diff --git a/server/server.go b/server/server.go index 6e9fb19..c03e41c 100644 --- a/server/server.go +++ b/server/server.go @@ -214,12 +214,14 @@ func main() { var acmeHostnamesCommas string var disableTLS bool var logFilename string + var unsafeLogging bool flag.Usage = usage flag.StringVar(&acmeEmail, "acme-email", "", "optional contact email for Let's Encrypt notifications") flag.StringVar(&acmeHostnamesCommas, "acme-hostnames", "", "comma-separated hostnames for TLS certificate") flag.BoolVar(&disableTLS, "disable-tls", false, "don't use HTTPS") flag.StringVar(&logFilename, "log", "", "log file to write to") + flag.BoolVar(&unsafeLogging, "unsafe-logging", false, "prevent logs from being scrubbed") flag.Parse() log.SetFlags(log.LstdFlags | log.LUTC) @@ -233,8 +235,12 @@ func main() { defer f.Close() logOutput = f } - //We want to send the log output through our scrubber first - log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + if unsafeLogging { + log.SetOutput(logOutput) + } else { + // We want to send the log output through our scrubber first + log.SetOutput(&safelog.LogScrubber{Output: logOutput}) + } if !disableTLS && acmeHostnamesCommas == "" { log.Fatal("the --acme-hostnames option is required")
participants (1)
-
arlo@torproject.org