1
0
mirror of https://github.com/fumiama/wintun.git synced 2026-06-20 02:30:23 +08:00

fix panic

This commit is contained in:
fumiama
2021-12-29 23:28:51 +08:00
parent c33dd13d28
commit 8bc97c8034

View File

@@ -41,18 +41,14 @@ var (
procWintunGetRunningDriverVersion = modwintun.NewProc("WintunGetRunningDriverVersion") procWintunGetRunningDriverVersion = modwintun.NewProc("WintunGetRunningDriverVersion")
) )
type TimestampedWriter interface { func logMessage(level loggerLevel, timestamp uint64, msg *uint16) int {
WriteWithTimestamp(p []byte, ts int64) (n int, err error)
}
func logMessage(level loggerLevel, msg *uint16) int {
switch level { switch level {
case logInfo: case logInfo:
log.Println(windows.UTF16PtrToString(msg)) log.Println("[wintun] (", (int64(timestamp)-116444736000000000)*100, ")", windows.UTF16PtrToString(msg))
case logWarn: case logWarn:
log.Warnln(windows.UTF16PtrToString(msg)) log.Warnln("[wintun] (", (int64(timestamp)-116444736000000000)*100, ")", windows.UTF16PtrToString(msg))
case logErr: case logErr:
log.Errorln(windows.UTF16PtrToString(msg)) log.Errorln("[wintun] (", (int64(timestamp)-116444736000000000)*100, ")", windows.UTF16PtrToString(msg))
} }
return 0 return 0
} }
@@ -61,11 +57,11 @@ func setupLogger(dll *lazyDLL) {
var callback uintptr var callback uintptr
if runtime.GOARCH == "386" { if runtime.GOARCH == "386" {
callback = windows.NewCallback(func(level loggerLevel, timestampLow, timestampHigh uint32, msg *uint16) int { callback = windows.NewCallback(func(level loggerLevel, timestampLow, timestampHigh uint32, msg *uint16) int {
return logMessage(level, msg) return logMessage(level, uint64(timestampHigh)<<32|uint64(timestampLow), msg)
}) })
} else if runtime.GOARCH == "arm" { } else if runtime.GOARCH == "arm" {
callback = windows.NewCallback(func(level loggerLevel, _, timestampLow, timestampHigh uint32, msg *uint16) int { callback = windows.NewCallback(func(level loggerLevel, _, timestampLow, timestampHigh uint32, msg *uint16) int {
return logMessage(level, msg) return logMessage(level, uint64(timestampHigh)<<32|uint64(timestampLow), msg)
}) })
} else if runtime.GOARCH == "amd64" || runtime.GOARCH == "arm64" { } else if runtime.GOARCH == "amd64" || runtime.GOARCH == "arm64" {
callback = windows.NewCallback(logMessage) callback = windows.NewCallback(logMessage)