From 1f907e69a787c086598a0726aae9477a326c48c1 Mon Sep 17 00:00:00 2001 From: Ethan Dickson Date: Thu, 5 Jun 2025 04:06:31 +0000 Subject: [PATCH 1/2] chore(vpn): send info, debug logs over tunnel --- cli/vpndaemon_windows.go | 1 - vpn/dylib/lib.go | 5 ++++- vpn/tunnel.go | 32 ++++++++++++-------------------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/cli/vpndaemon_windows.go b/cli/vpndaemon_windows.go index 227bd0fe8e0db..cf74558ffa1ab 100644 --- a/cli/vpndaemon_windows.go +++ b/cli/vpndaemon_windows.go @@ -65,7 +65,6 @@ func (r *RootCmd) vpnDaemonRun() *serpent.Command { logger.Info(ctx, "starting tunnel") tunnel, err := vpn.NewTunnel(ctx, logger, pipe, vpn.NewClient(), vpn.UseOSNetworkingStack(), - vpn.UseAsLogger(), vpn.UseCustomLogSinks(sinks...), ) if err != nil { diff --git a/vpn/dylib/lib.go b/vpn/dylib/lib.go index de6f91042c7ef..3677aee369598 100644 --- a/vpn/dylib/lib.go +++ b/vpn/dylib/lib.go @@ -46,7 +46,10 @@ func OpenTunnel(cReadFD, cWriteFD int32) int32 { return ErrOpenPipe } - _, err = vpn.NewTunnel(ctx, slog.Make(), conn, vpn.NewClient(), + // We log everything, as filtering is done by whatever renders the OS + // logs. + _, err = vpn.NewTunnel(ctx, slog.Make().Leveled(slog.LevelDebug), conn, + vpn.NewClient(), vpn.UseOSNetworkingStack(), vpn.UseAsLogger(), ) diff --git a/vpn/tunnel.go b/vpn/tunnel.go index aa1d0e32ef5b9..62ae2e1644041 100644 --- a/vpn/tunnel.go +++ b/vpn/tunnel.go @@ -46,9 +46,6 @@ type Tunnel struct { logger slog.Logger - logMu sync.Mutex - logs []*TunnelMessage - client Client // clientLogger is a separate logger than `logger` when the `UseAsLogger` @@ -300,29 +297,22 @@ func (t *Tunnel) stop(*StopRequest) error { var _ slog.Sink = &Tunnel{} func (t *Tunnel) LogEntry(_ context.Context, e slog.SinkEntry) { - t.logMu.Lock() - defer t.logMu.Unlock() - t.logs = append(t.logs, &TunnelMessage{ + msg := &TunnelMessage{ Msg: &TunnelMessage_Log{ Log: sinkEntryToPb(e), }, - }) -} - -func (t *Tunnel) Sync() { - t.logMu.Lock() - logs := t.logs - t.logs = nil - t.logMu.Unlock() - for _, msg := range logs { - select { - case <-t.ctx.Done(): - return - case t.sendCh <- msg: - } + } + select { + case <-t.updater.ctx.Done(): + return + case <-t.ctx.Done(): + return + case t.sendCh <- msg: } } +func (t *Tunnel) Sync() {} + func sinkEntryToPb(e slog.SinkEntry) *Log { l := &Log{ // #nosec G115 - Safe conversion for log levels which are small positive integers @@ -583,6 +573,8 @@ func (u *updater) sendAgentUpdate() { return } + u.logger.Debug(u.ctx, "sending agent update") + msg := &TunnelMessage{ Msg: &TunnelMessage_PeerUpdate{ PeerUpdate: &PeerUpdate{ From 8535d64313b5ef4e63fe717ffb002105cb8bfb11 Mon Sep 17 00:00:00 2001 From: Ethan Dickson Date: Thu, 5 Jun 2025 04:12:28 +0000 Subject: [PATCH 2/2] lint --- vpn/tunnel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vpn/tunnel.go b/vpn/tunnel.go index 62ae2e1644041..e4624ac1822b0 100644 --- a/vpn/tunnel.go +++ b/vpn/tunnel.go @@ -311,7 +311,7 @@ func (t *Tunnel) LogEntry(_ context.Context, e slog.SinkEntry) { } } -func (t *Tunnel) Sync() {} +func (*Tunnel) Sync() {} func sinkEntryToPb(e slog.SinkEntry) *Log { l := &Log{