chore: clippy fix some code on Windows (#2106)

This commit is contained in:
Luna Yao
2026-04-12 16:13:58 +02:00
committed by GitHub
parent 83010861ba
commit c6cb1a77d0
5 changed files with 28 additions and 37 deletions
@@ -68,10 +68,10 @@ pub struct WinDivertTun {
impl Drop for WinDivertTun {
fn drop(&mut self) {
if let Ok(mut sender) = self.sender.lock() {
if let Err(e) = sender.close(windivert::CloseAction::Nothing) {
tracing::error!("WinDivertSender close failed: {:?}", e);
}
if let Ok(mut sender) = self.sender.lock()
&& let Err(e) = sender.close(windivert::CloseAction::Nothing)
{
tracing::error!("WinDivertSender close failed: {:?}", e);
}
if let Err(e) = self.reader.shutdown() {
tracing::error!("WinDivertReader shutdown failed: {:?}", e);
@@ -94,8 +94,7 @@ impl WinDivertTun {
// Layer: Network (0)
// Priority: 0
let flags = WinDivertFlags::default().set_sniff();
let reader = WinDivert::network(&filter, 0, flags)
.map_err(|e| io::Error::new(io::ErrorKind::Other, e))?;
let reader = WinDivert::network(&filter, 0, flags).map_err(io::Error::other)?;
let reader = Arc::new(WinDivertReader::new(reader));
let reader_clone = reader.clone();
@@ -109,7 +108,7 @@ impl WinDivertTun {
let mut eth_data = vec![0u8; 14 + data.len()];
// Set EtherType
if data.len() > 0 && data[0] >> 4 == 4 {
if !data.is_empty() && data[0] >> 4 == 4 {
eth_data[12] = 0x08;
eth_data[13] = 0x00;
} else {
@@ -118,12 +117,12 @@ impl WinDivertTun {
}
eth_data[14..].copy_from_slice(data);
if let Err(_) = tx.blocking_send(eth_data) {
if tx.blocking_send(eth_data).is_err() {
break;
}
}
Err(_) => {
// log error?
Err(error) => {
tracing::error!(?error, "WinDivert recv failed");
break;
}
}
@@ -133,8 +132,8 @@ impl WinDivertTun {
// Sender: non-sniff, empty filter?
// Use "false" to avoid capturing anything.
// Flags: 0
let sender = WinDivert::network("false", 0, WinDivertFlags::default())
.map_err(|e| io::Error::new(io::ErrorKind::Other, e))?;
let sender =
WinDivert::network("false", 0, WinDivertFlags::default()).map_err(io::Error::other)?;
Ok(Self {
recv_queue: Mutex::new(rx),
@@ -171,21 +170,15 @@ impl stack::Tun for WinDivertTun {
let ip_data = &packet[14..];
let Ok(sender) = self.sender.try_lock() else {
return Err(std::io::Error::new(
std::io::ErrorKind::Other,
"WinDivert sender lock failed",
));
return Err(std::io::Error::other("WinDivert sender lock failed"));
};
let mut pkt = unsafe { WinDivertPacket::<layer::NetworkLayer>::new(ip_data.to_vec()) };
pkt.address.set_outbound(true);
sender.send(&pkt).map_err(|e| {
std::io::Error::new(
std::io::ErrorKind::Other,
format!("WinDivert send failed: {}", e),
)
})?;
sender
.send(&pkt)
.map_err(|e| std::io::Error::other(format!("WinDivert send failed: {}", e)))?;
Ok(())
}