diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-08-08 17:16:30 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-08-08 17:16:30 +0200 |
commit | 301773302e5e97544be69965b9fae573791f1460 (patch) | |
tree | ead73dc871aa49f074d48f01a03786fdd47df5fc /ringlogger | |
parent | driver: account for timestamp callback but do nothing (diff) | |
download | wireguard-windows-301773302e5e97544be69965b9fae573791f1460.tar.xz wireguard-windows-301773302e5e97544be69965b9fae573791f1460.zip |
driver: break encapsulation and pass timestamp to ringlogger
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ringlogger')
-rw-r--r-- | ringlogger/dump.go | 12 | ||||
-rw-r--r-- | ringlogger/global.go | 12 | ||||
-rw-r--r-- | ringlogger/ringlogger.go | 9 |
3 files changed, 11 insertions, 22 deletions
diff --git a/ringlogger/dump.go b/ringlogger/dump.go index 8b5651e3..4891bb60 100644 --- a/ringlogger/dump.go +++ b/ringlogger/dump.go @@ -8,20 +8,12 @@ package ringlogger import ( "io" "os" - "path/filepath" "golang.org/x/sys/windows" - - "golang.zx2c4.com/wireguard/windows/conf" ) -func DumpTo(out io.Writer, notSystem bool) error { - root, err := conf.RootDirectory(!notSystem) - if err != nil { - return err - } - path := filepath.Join(root, "log.bin") - file, err := os.Open(path) +func DumpTo(inPath string, out io.Writer) error { + file, err := os.Open(inPath) if err != nil { return err } diff --git a/ringlogger/global.go b/ringlogger/global.go index 4213e2f1..0685cbd7 100644 --- a/ringlogger/global.go +++ b/ringlogger/global.go @@ -7,23 +7,17 @@ package ringlogger import ( "log" - "path/filepath" "unsafe" - - "golang.zx2c4.com/wireguard/windows/conf" ) var Global *Ringlogger -func InitGlobalLogger(tag string) error { +func InitGlobalLogger(file, tag string) error { if Global != nil { return nil } - root, err := conf.RootDirectory(true) - if err != nil { - return err - } - Global, err = NewRinglogger(filepath.Join(root, "log.bin"), tag) + var err error + Global, err = NewRinglogger(file, tag) if err != nil { return err } diff --git a/ringlogger/ringlogger.go b/ringlogger/ringlogger.go index 443e1848..8888b64e 100644 --- a/ringlogger/ringlogger.go +++ b/ringlogger/ringlogger.go @@ -107,6 +107,12 @@ func newRingloggerFromMappingHandle(mappingHandle windows.Handle, tag string, ac } func (rl *Ringlogger) Write(p []byte) (n int, err error) { + // Race: This isn't synchronized with the fetch_add below, so items might be slightly out of order. + ts := time.Now().UnixNano() + return rl.WriteWithTimestamp(p, ts) +} + +func (rl *Ringlogger) WriteWithTimestamp(p []byte, ts int64) (n int, err error) { if rl.readOnly { return 0, io.ErrShortWrite } @@ -116,9 +122,6 @@ func (rl *Ringlogger) Write(p []byte) (n int, err error) { return ret, nil } - // Race: This isn't synchronized with the fetch_add below, so items might be slightly out of order. - ts := time.Now().UnixNano() - if rl.log == nil { return 0, io.EOF } |