From bde65aa239f65de8b58fc5317002b43372483806 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Sun, 23 Nov 2025 22:06:25 +0000 Subject: [PATCH] Fix backpressure issue when TUN is disabled --- src/tun/iface.go | 4 +++- src/tun/tun.go | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/tun/iface.go b/src/tun/iface.go index f1898281..8f26cef2 100644 --- a/src/tun/iface.go +++ b/src/tun/iface.go @@ -41,7 +41,9 @@ func (tun *TunAdapter) queue() { tun.log.Errorln("Exiting TUN writer due to core read error:", err) return } - tun.ch <- p[:n] + if tun.ch != nil { + tun.ch <- p[:n] + } } } diff --git a/src/tun/tun.go b/src/tun/tun.go index d15a0674..47a44713 100644 --- a/src/tun/tun.go +++ b/src/tun/tun.go @@ -125,8 +125,9 @@ func (tun *TunAdapter) _start() error { if tun.config.name == "none" || tun.config.name == "dummy" { tun.log.Debugln("Not starting TUN as ifname is none or dummy") tun.isEnabled = false + // Need to keep the queue goroutine running to stop underlying + // layers from getting blocked. go tun.queue() - go tun.write() return nil } mtu := uint64(tun.config.mtu)