diff --git a/go.mod b/go.mod index 856595e..0ca798f 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,7 @@ module golang.zx2c4.com/wintun go 1.17 -require golang.org/x/sys v0.0.0-20211103235746-7861aae1554b +require ( + github.com/sirupsen/logrus v1.8.1 + golang.org/x/sys v0.0.0-20211103235746-7861aae1554b +) diff --git a/go.sum b/go.sum index 6e0fe0b..b1629bf 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,11 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b h1:1VkfZQv42XQlA/jchYumAnv1UPo6RgF9rJFkTgZIxO4= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/wintun.go b/wintun.go index 404a2ff..1ff6bb4 100644 --- a/wintun.go +++ b/wintun.go @@ -1,19 +1,20 @@ +//go:build windows + /* SPDX-License-Identifier: MIT * * Copyright (C) 2017-2021 WireGuard LLC. All Rights Reserved. */ -//go:build windows - package wintun import ( - "log" "runtime" "syscall" "unsafe" "golang.org/x/sys/windows" + + log "github.com/sirupsen/logrus" ) type loggerLevel int @@ -44,11 +45,14 @@ type TimestampedWriter interface { WriteWithTimestamp(p []byte, ts int64) (n int, err error) } -func logMessage(level loggerLevel, timestamp uint64, msg *uint16) int { - if tw, ok := log.Default().Writer().(TimestampedWriter); ok { - tw.WriteWithTimestamp([]byte(log.Default().Prefix()+windows.UTF16PtrToString(msg)), (int64(timestamp)-116444736000000000)*100) - } else { +func logMessage(level loggerLevel, msg *uint16) int { + switch level { + case logInfo: log.Println(windows.UTF16PtrToString(msg)) + case logWarn: + log.Warnln(windows.UTF16PtrToString(msg)) + case logErr: + log.Errorln(windows.UTF16PtrToString(msg)) } return 0 } @@ -57,11 +61,11 @@ func setupLogger(dll *lazyDLL) { var callback uintptr if runtime.GOARCH == "386" { callback = windows.NewCallback(func(level loggerLevel, timestampLow, timestampHigh uint32, msg *uint16) int { - return logMessage(level, uint64(timestampHigh)<<32|uint64(timestampLow), msg) + return logMessage(level, msg) }) } else if runtime.GOARCH == "arm" { callback = windows.NewCallback(func(level loggerLevel, _, timestampLow, timestampHigh uint32, msg *uint16) int { - return logMessage(level, uint64(timestampHigh)<<32|uint64(timestampLow), msg) + return logMessage(level, msg) }) } else if runtime.GOARCH == "amd64" || runtime.GOARCH == "arm64" { callback = windows.NewCallback(logMessage)