From 82d603265552e5c1fc5f5632c45a4c1888f8c253 Mon Sep 17 00:00:00 2001 From: rustdesk Date: Sat, 17 Jun 2023 00:17:56 +0800 Subject: [PATCH] no mask check for wol to avoid unexpected bug --- src/client.rs | 2 +- src/lan.rs | 21 +++++++-------------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/client.rs b/src/client.rs index 2f367b60e132..8fda02d9d0ce 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1905,7 +1905,7 @@ pub async fn handle_test_delay(t: TestDelay, peer: &mut Stream) { /// Whether is track pad scrolling. #[inline] -#[cfg(all(target_os = "macos"))] +#[cfg(all(target_os = "macos", not(feature = "flutter")))] fn check_scroll_on_mac(mask: i32, x: i32, y: i32) -> bool { // flutter version we set mask type bit to 4 when track pad scrolling. if mask & 7 == crate::input::MOUSE_TYPE_TRACKPAD { diff --git a/src/lan.rs b/src/lan.rs index d9f0c0894f5e..eb01e1ffefea 100644 --- a/src/lan.rs +++ b/src/lan.rs @@ -73,21 +73,14 @@ pub fn send_wol(id: String) { let interfaces = default_net::get_interfaces(); for peer in &config::LanPeers::load().peers { if peer.id == id { - for (ip, mac) in peer.ip_mac.iter() { + for (_, mac) in peer.ip_mac.iter() { if let Ok(mac_addr) = mac.parse() { - if let Ok(IpAddr::V4(ip)) = ip.parse() { - for interface in &interfaces { - for ipv4 in &interface.ipv4 { - if (u32::from(ipv4.addr) & u32::from(ipv4.netmask)) - == (u32::from(ip) & u32::from(ipv4.netmask)) - { - allow_err!(wol::send_wol( - mac_addr, - None, - Some(IpAddr::V4(ipv4.addr)) - )); - } - } + for interface in &interfaces { + for ipv4 in &interface.ipv4 { + // remove below mask check to avoid unexpected bug + // if (u32::from(ipv4.addr) & u32::from(ipv4.netmask)) == (u32::from(peer_ip) & u32::from(ipv4.netmask)) + log::info!("Send wol to {mac_addr} of {}", ipv4.addr); + allow_err!(wol::send_wol(mac_addr, None, Some(IpAddr::V4(ipv4.addr)))); } } }