mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-04-22 16:17:23 +08:00
chore: clippy fix some code on Windows (#2106)
This commit is contained in:
@@ -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,
|
||||
)?;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user