From c1e097d6d0cabb81b3aa180d69107f9857606bf5 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 14 May 2018 03:38:06 +0200 Subject: [PATCH] Optional logging even in background --- logger.go | 8 ++++++-- main.go | 13 ++++++++++--- uapi.go | 1 - 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/logger.go b/logger.go index b8012aa..849f674 100644 --- a/logger.go +++ b/logger.go @@ -13,7 +13,8 @@ import ( ) const ( - LogLevelError = iota + LogLevelSilent = iota + LogLevelError LogLevelInfo LogLevelDebug ) @@ -35,7 +36,10 @@ func NewLogger(level int, prepend string) *Logger { if level >= LogLevelInfo { return output, output, ioutil.Discard } - return output, ioutil.Discard, ioutil.Discard + if level >= LogLevelError { + return output, ioutil.Discard, ioutil.Discard + } + return ioutil.Discard, ioutil.Discard, ioutil.Discard }() logger.Debug = log.New(logDebug, diff --git a/main.go b/main.go index 5001bc4..6c7b07d 100644 --- a/main.go +++ b/main.go @@ -111,6 +111,8 @@ func main() { return LogLevelInfo case "error": return LogLevelError + case "silent": + return LogLevelSilent } return LogLevelInfo }() @@ -183,11 +185,16 @@ func main() { env = append(env, fmt.Sprintf("%s=3", ENV_WG_TUN_FD)) env = append(env, fmt.Sprintf("%s=4", ENV_WG_UAPI_FD)) env = append(env, fmt.Sprintf("%s=1", ENV_WG_PROCESS_FOREGROUND)) + files := [3]*os.File{} + if os.Getenv("LOG_LEVEL") != "" { + files[1] = os.Stdout + files[2] = os.Stderr + } attr := &os.ProcAttr{ Files: []*os.File{ - nil, // stdin - nil, // stdout - nil, // stderr + files[0], // stdin + files[1], // stdout + files[2], // stderr tun.File(), fileUAPI, }, diff --git a/uapi.go b/uapi.go index 9858f60..f846033 100644 --- a/uapi.go +++ b/uapi.go @@ -235,7 +235,6 @@ func ipcSetOperation(device *Device, socket *bufio.ReadWriter) *IPCError { dummy = device.staticIdentity.publicKey.Equals(publicKey) device.staticIdentity.mutex.RUnlock() - if dummy { peer = &Peer{} } else {