[tor-commits] [snowflake/master] Add unsafe logging

arlo at torproject.org arlo at torproject.org
Wed Mar 25 15:55:33 UTC 2020


commit f58c865d82fa5d3670c1df9a587d61450aeb664b
Author: Arlo Breault <arlolra at 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")





More information about the tor-commits mailing list