diff --git a/pkg/client/tunnel.go b/pkg/client/tunnel.go index b8db98e..b40e407 100644 --- a/pkg/client/tunnel.go +++ b/pkg/client/tunnel.go @@ -134,6 +134,9 @@ func (t *Tunnel) Bridge(tapRead func(buf []byte) (int, error), tapWrite func(buf }() // TAP → Server + // Note: tapRead blocks on the TAP fd which doesn't support deadlines. + // On disconnect, this goroutine survives until the next TAP frame arrives, + // at which point WriteFrames fails on the closed connection and it exits. go func() { buf := make([]byte, 1600) for {