]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
Optional logging even in background
authorJason A. Donenfeld <Jason@zx2c4.com>
Mon, 14 May 2018 01:38:06 +0000 (03:38 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 14 May 2018 01:38:06 +0000 (03:38 +0200)
logger.go
main.go
uapi.go

index b8012aae010264efae5320d414095266379c759b..849f6746081d28140517cd92e4edc2a946614e8c 100644 (file)
--- 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 5001bc436e1d918870e7427fef989d1b48ef2208..6c7b07de91ccba11b975b4635d2c30b7f37a4987 100644 (file)
--- 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 9858f60ca04841c514ed062d3f0346939b407f24..f8460337c3c056754dff6f97a36f224027d84a3b 100644 (file)
--- 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 {