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
+1 -1
View File
@@ -345,7 +345,7 @@ fn add_protocol_firewall_rules(
SafeArrayPutElement(
interface_array,
&index as *const _ as *const i32,
&index as *const _,
&variant_interface as *const _ as *const std::ffi::c_void,
)?;
+5 -6
View File
@@ -448,12 +448,11 @@ impl RegistryManager {
for guid in network_key.enum_keys().map_while(Result::ok) {
if let Ok(guid_key) = network_key.open_subkey_with_flags(&guid, KEY_READ) {
// 检查 Connection/Name 是否匹配目标接口名
if let Ok(conn_key) = guid_key.open_subkey_with_flags("Connection", KEY_READ) {
if let Ok(name) = conn_key.get_value::<String, _>("Name") {
if name == interface_name {
return Ok(guid);
}
}
if let Ok(conn_key) = guid_key.open_subkey_with_flags("Connection", KEY_READ)
&& let Ok(name) = conn_key.get_value::<String, _>("Name")
&& name == interface_name
{
return Ok(guid);
}
}
}
@@ -202,13 +202,12 @@ mod tests {
.arg("1")
.arg("-w")
.arg("100")
.arg(&fake_ip.to_string())
.arg(fake_ip.to_string())
.output()
.await
&& o.status.success()
{
if o.status.success() {
break;
}
break;
}
}
+4 -4
View File
@@ -491,10 +491,10 @@ mod win_service_manager {
{
Ok(s) => s,
Err(e) => {
if let windows_service::Error::Winapi(ref win_err) = e {
if win_err.raw_os_error() == Some(0x424) {
return Ok(ServiceStatus::NotInstalled);
}
if let windows_service::Error::Winapi(ref win_err) = e
&& win_err.raw_os_error() == Some(0x424)
{
return Ok(ServiceStatus::NotInstalled);
}
return Err(io::Error::other(e));
}
@@ -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(())
}