Add adapter_close to stop TCP stack

This commit is contained in:
Jackson Coxson
2025-10-22 10:26:13 -06:00
parent dd2db92967
commit 5ed2144d9e
4 changed files with 80 additions and 30 deletions

View File

@@ -38,6 +38,7 @@ enum HandleMessage {
path: PathBuf,
res: oneshot::Sender<Result<(), std::io::Error>>,
},
Die,
}
#[derive(Debug)]
@@ -90,6 +91,9 @@ impl AdapterHandle {
res
} => {
res.send(adapter.pcap(path).await).ok();
},
HandleMessage::Die => {
break;
}
},
Err(_) => {
@@ -218,6 +222,16 @@ impl AdapterHandle {
)),
}
}
pub async fn close(&mut self) -> Result<(), std::io::Error> {
if self.sender.send(HandleMessage::Die).is_err() {
return Err(std::io::Error::new(
std::io::ErrorKind::NetworkUnreachable,
"adapter closed",
));
}
Ok(())
}
}
#[derive(Debug)]