From 10db40d025abb5f4de221be618674ef9b41d2419 Mon Sep 17 00:00:00 2001 From: Fedor Korotkov Date: Tue, 21 Jul 2026 15:18:33 -0400 Subject: [PATCH] Keep Softnet port forwarding active on control wakes --- lib/poller.rs | 9 ++------- lib/proxy/mod.rs | 4 ++-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/poller.rs b/lib/poller.rs index 2c98ed2..0785689 100644 --- a/lib/poller.rs +++ b/lib/poller.rs @@ -76,7 +76,7 @@ impl Poller<'_> { self.events.clear(); } - pub fn wait(&mut self) -> Result<(bool, bool, bool, bool)> { + pub fn wait(&mut self) -> Result<(bool, bool, bool)> { self.poller.wait(&mut self.events, Some(self.timeout))?; let vm_readable = self @@ -91,12 +91,7 @@ impl Poller<'_> { .events .iter() .any(|ev| ev.key == Into::::into(EventKey::Interrupt)); - let control_ready = self - .events - .iter() - .any(|ev| ev.key == Into::::into(EventKey::Control)); - - Ok((vm_readable, host_readable, control_ready, interrupt)) + Ok((vm_readable, host_readable, interrupt)) } pub fn remove_control(&mut self) -> Result<()> { diff --git a/lib/proxy/mod.rs b/lib/proxy/mod.rs index 8d06f20..449165b 100644 --- a/lib/proxy/mod.rs +++ b/lib/proxy/mod.rs @@ -139,7 +139,7 @@ impl Proxy<'_> { self.poller.arm()?; loop { - let (vm_readable, host_readable, control_ready, interrupt) = self.poller.wait()?; + let (vm_readable, host_readable, interrupt) = self.poller.wait()?; // Update coarse time for the DHCP snooper coarsetime::Instant::update(); @@ -162,7 +162,7 @@ impl Proxy<'_> { } // Timeout - if !vm_readable && !host_readable && !control_ready && !interrupt { + if !vm_readable && !host_readable && !interrupt { self.port_forwarder .tick(&mut self.host, self.dhcp_snooper.lease()); }