aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-20 13:53:48 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-20 13:53:48 +0200
commit30f00351c8fe6b33d6e7795fee5f0277a48c95c2 (patch)
tree7807e19e35b1791bd9017d299eef360e394d4f96
parentservice: give indication of socket binding (diff)
downloadwireguard-windows-30f00351c8fe6b33d6e7795fee5f0277a48c95c2.tar.xz
wireguard-windows-30f00351c8fe6b33d6e7795fee5f0277a48c95c2.zip
service: simplify tunnel logging
-rw-r--r--service/ifaceconfig.go3
-rw-r--r--service/service_tunnel.go59
2 files changed, 25 insertions, 37 deletions
diff --git a/service/ifaceconfig.go b/service/ifaceconfig.go
index 39eb4b5e..ea28ecdc 100644
--- a/service/ifaceconfig.go
+++ b/service/ifaceconfig.go
@@ -347,8 +347,7 @@ func enableFirewall(conf *conf.Config, tun *tun.NativeTun) error {
}
}
if restrictAll && len(conf.Interface.DNS) == 0 {
- name, _ := tun.Name()
- log.Printf("[%s] Warning: no DNS server specified, despite having an allowed IPs of 0.0.0.0/0 or ::/0. There may be connectivity issues.", name)
+ log.Println("Warning: no DNS server specified, despite having an allowed IPs of 0.0.0.0/0 or ::/0. There may be connectivity issues.")
}
return firewall.EnableFirewall(tun.LUID(), conf.Interface.DNS, restrictAll)
}
diff --git a/service/service_tunnel.go b/service/service_tunnel.go
index 2d66bf32..2a82a2f2 100644
--- a/service/service_tunnel.go
+++ b/service/service_tunnel.go
@@ -37,22 +37,14 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
var dev *device.Device
var uapi net.Listener
var routeChangeCallback *winipcfg.RouteChangeCallback
- var logger *device.Logger
var err error
serviceError := ErrorSuccess
defer func() {
svcSpecificEC, exitCode = determineErrorCode(err, serviceError)
logErr := combineErrors(err, serviceError)
- logIt := func(a ...interface{}) {
- if logger != nil {
- logger.Error.Println(a...)
- } else {
- log.Println(a...)
- }
- }
if logErr != nil {
- logIt(logErr)
+ log.Println(logErr)
}
changes <- svc.Status{State: svc.StopPending}
@@ -73,9 +65,11 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
buf = make([]byte, 2*len(buf))
}
lines := bytes.Split(buf, []byte{'\n'})
- logIt("Failed to shutdown after 30 seconds. Probably dead locked. Printing stack and killing.")
+ log.Println("Failed to shutdown after 30 seconds. Probably dead locked. Printing stack and killing.")
for _, line := range lines {
- logIt(fmt.Sprintf("stack trace: %s", string(line)))
+ if len(bytes.TrimSpace(line)) > 0 {
+ log.Println(string(line))
+ }
}
os.Exit(777)
return
@@ -105,17 +99,10 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
return
}
defer func() {
- logIt := func(a ...interface{}) {
- if logger != nil {
- logger.Error.Println(a...)
- } else {
- log.Println(a...)
- }
- }
if x := recover(); x != nil {
for _, line := range append([]string{fmt.Sprint(x)}, strings.Split(string(debug.Stack()), "\n")...) {
if len(strings.TrimSpace(line)) > 0 {
- logIt(line)
+ log.Println(line)
}
}
panic(x)
@@ -128,25 +115,25 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
return
}
- stdLog := log.New(ringlogger.Global, fmt.Sprintf("[%s] ", conf.Name), 0)
- logger = &device.Logger{stdLog, stdLog, stdLog}
+ logPrefix := fmt.Sprintf("[%s] ", conf.Name)
+ log.SetPrefix(logPrefix)
- logger.Info.Println("Starting", version.UserAgent())
+ log.Println("Starting", version.UserAgent())
- logger.Info.Println("Resolving DNS names")
+ log.Println("Resolving DNS names")
uapiConf, err := conf.ToUAPI()
if err != nil {
serviceError = ErrorDNSLookup
return
}
- logger.Info.Println("Creating Wintun device")
+ log.Println("Creating Wintun device")
wintun, err := tun.CreateTUN(conf.Name)
if err != nil {
serviceError = ErrorCreateWintun
return
}
- logger.Info.Println("Determining Wintun device name")
+ log.Println("Determining Wintun device name")
realInterfaceName, err := wintun.Name()
if err != nil {
serviceError = ErrorDetermineWintunName
@@ -155,24 +142,26 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
conf.Name = realInterfaceName
nativeTun := wintun.(*tun.NativeTun)
- logger.Info.Println("Enabling firewall rules")
+ log.Println("Enabling firewall rules")
err = enableFirewall(conf, nativeTun)
if err != nil {
serviceError = ErrorFirewall
return
}
- logger.Info.Println("Dropping all privileges")
+ log.Println("Dropping all privileges")
err = DropAllPrivileges()
if err != nil {
serviceError = ErrorDropPrivileges
return
}
- logger.Info.Println("Creating interface instance")
+ log.Println("Creating interface instance")
+ logOutput := log.New(ringlogger.Global, logPrefix, 0)
+ logger := &device.Logger{logOutput, logOutput, logOutput}
dev = device.NewDevice(wintun, logger)
- logger.Info.Println("Setting interface configuration")
+ log.Println("Setting interface configuration")
uapi, err = ipc.UAPIListen(conf.Name)
if err != nil {
serviceError = ErrorUAPIListen
@@ -185,24 +174,24 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
return
}
- logger.Info.Println("Bringing peers up")
+ log.Println("Bringing peers up")
dev.Up()
- logger.Info.Println("Monitoring default routes")
+ log.Println("Monitoring default routes")
routeChangeCallback, err = monitorDefaultRoutes(dev, conf.Interface.MTU == 0, nativeTun)
if err != nil {
serviceError = ErrorBindSocketsToDefaultRoutes
return
}
- logger.Info.Println("Setting device address")
+ log.Println("Setting device address")
err = configureInterface(conf, nativeTun)
if err != nil {
serviceError = ErrorSetNetConfig
return
}
- logger.Info.Println("Listening for UAPI requests")
+ log.Println("Listening for UAPI requests")
go func() {
for {
conn, err := uapi.Accept()
@@ -214,7 +203,7 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
}()
changes <- svc.Status{State: svc.Running, Accepts: svc.AcceptStop}
- logger.Info.Println("Startup complete")
+ log.Println("Startup complete")
for {
select {
@@ -225,7 +214,7 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest,
case svc.Interrogate:
changes <- c.CurrentStatus
default:
- logger.Error.Printf("Unexpected service control request #%d\n", c)
+ log.Printf("Unexpected service control request #%d\n", c)
}
case <-dev.Wait():
return