Keep Softnet port forwarding active on control wakes

This commit is contained in:
Fedor Korotkov 2026-07-21 15:18:33 -04:00
parent a25da6eaf5
commit 10db40d025
No known key found for this signature in database
2 changed files with 4 additions and 9 deletions

View File

@ -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::<usize>::into(EventKey::Interrupt));
let control_ready = self
.events
.iter()
.any(|ev| ev.key == Into::<usize>::into(EventKey::Control));
Ok((vm_readable, host_readable, control_ready, interrupt))
Ok((vm_readable, host_readable, interrupt))
}
pub fn remove_control(&mut self) -> Result<()> {

View File

@ -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());
}