Browse Source

Handle poll interrupt gracefully

pull/16/head
B. Blechschmidt 3 years ago
parent
commit
8135ed3dce
  1. 10
      src/tun2proxy.rs

10
src/tun2proxy.rs

@ -673,7 +673,8 @@ impl<'a> TunToProxy<'a> {
let mut events = Events::with_capacity(1024); let mut events = Events::with_capacity(1024);
loop { loop {
self.poll.poll(&mut events, None)?; match self.poll.poll(&mut events, None) {
Ok(()) => {
for event in events.iter() { for event in events.iter() {
match event.token() { match event.token() {
TCP_TOKEN => self.tun_event(event)?, TCP_TOKEN => self.tun_event(event)?,
@ -683,5 +684,12 @@ impl<'a> TunToProxy<'a> {
} }
self.send_to_smoltcp()?; self.send_to_smoltcp()?;
} }
Err(e) => {
if e.kind() != std::io::ErrorKind::Interrupted {
return Err(e.into())
}
}
}
}
} }
} }

Loading…
Cancel
Save