aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ringlogger
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-08-08 17:16:30 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2021-08-08 17:16:30 +0200
commit301773302e5e97544be69965b9fae573791f1460 (patch)
treeead73dc871aa49f074d48f01a03786fdd47df5fc /ringlogger
parentdriver: account for timestamp callback but do nothing (diff)
downloadwireguard-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.go12
-rw-r--r--ringlogger/global.go12
-rw-r--r--ringlogger/ringlogger.go9
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
}