From c5698df3aa9dc3c96be305910aad0e9060d1b967 Mon Sep 17 00:00:00 2001 From: fufesou Date: Mon, 19 Jun 2023 20:49:04 +0800 Subject: [PATCH] add debug msg Signed-off-by: fufesou --- libs/clipboard/src/lib.rs | 6 +++--- src/client/io_loop.rs | 13 ++++++------- src/server/connection.rs | 6 +++++- src/ui_cm_interface.rs | 18 ++++++++++++++---- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/libs/clipboard/src/lib.rs b/libs/clipboard/src/lib.rs index 33107f121..728158358 100644 --- a/libs/clipboard/src/lib.rs +++ b/libs/clipboard/src/lib.rs @@ -485,9 +485,9 @@ extern "C" fn client_format_list( let data = ClipboardFile::FormatList { format_list }; // no need to handle result here if conn_id == 0 { - VEC_MSG_CHANNEL - .read() - .unwrap() + // msg_channel is used for debug, VEC_MSG_CHANNEL cannot be inspected by the debugger. + let msg_channel = VEC_MSG_CHANNEL.read().unwrap(); + msg_channel .iter() .for_each(|msg_channel| allow_err!(msg_channel.sender.send(data.clone()))); } else { diff --git a/src/client/io_loop.rs b/src/client/io_loop.rs index 53e910f1a..c4b344b11 100644 --- a/src/client/io_loop.rs +++ b/src/client/io_loop.rs @@ -207,13 +207,12 @@ impl Remote { #[cfg(windows)] match _msg { Some(clip) => { - let mut send_msg = true; - if clip.is_stopping_allowed() { - if !(*self.handler.server_file_transfer_enabled.read().unwrap() && self.handler.lc.read().unwrap().enable_file_transfer.v) { - send_msg = false; - } - } - if send_msg { + let is_stopping_allowed = clip.is_stopping_allowed(); + let server_file_transfer_enabled = *self.handler.server_file_transfer_enabled.read().unwrap(); + let enable_file_transfer = self.handler.lc.read().unwrap().enable_file_transfer.v; + let stop = is_stopping_allowed && !(server_file_transfer_enabled && enable_file_transfer); + log::debug!("Process clipboard message from system, stop: {}, is_stopping_allowed: {}, server_file_transfer_enabled: {}, file_transfer_enabled: {}", stop, is_stopping_allowed, server_file_transfer_enabled, file_transfer_enabled); + if !stop { allow_err!(peer.send(&crate::clipboard_file::clip_2_msg(clip)).await); } } diff --git a/src/server/connection.rs b/src/server/connection.rs index 960360d6a..6f0ce6a47 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -438,7 +438,11 @@ impl Connection { } #[cfg(windows)] ipc::Data::ClipboardFile(clip) => { - if !clip.is_stopping_allowed() || conn.file_transfer_enabled() { + let is_stopping_allowed = clip.is_stopping_allowed(); + let enable_file_transfer = conn.file_transfer_enabled(); + let stop = is_stopping_allowed && !enable_file_transfer; + log::debug!("Process clipboard message from cm, stop: {}, is_stopping_allowed: {}, file_transfer_enabled: {}", stop, is_stopping_allowed, file_transfer_enabled); + if !stop { allow_err!(conn.stream.send(&clip_2_msg(clip)).await); } } diff --git a/src/ui_cm_interface.rs b/src/ui_cm_interface.rs index 3f05d1d12..485ce3750 100644 --- a/src/ui_cm_interface.rs +++ b/src/ui_cm_interface.rs @@ -16,7 +16,7 @@ use crate::ipc::Connection; #[cfg(not(any(target_os = "ios")))] use crate::ipc::{self, Data}; #[cfg(windows)] -use clipboard::{cliprdr::CliprdrClientContext, empty_clipboard, ContextSend}; +use clipboard::{cliprdr::CliprdrClientContext, ContextSend}; #[cfg(not(any(target_os = "android", target_os = "ios")))] use hbb_common::tokio::sync::mpsc::unbounded_channel; #[cfg(windows)] @@ -382,7 +382,11 @@ impl IpcTaskRunner { Data::ClipboardFile(_clip) => { #[cfg(windows)] { - if !_clip.is_stopping_allowed() || self.file_transfer_enabled { + let is_stopping_allowed = _clip.is_stopping_allowed(); + let file_transfer_enabled = self.file_transfer_enabled; + let stop = is_stopping_allowed && !file_transfer_enabled; + log::debug!("Process clipboard message from peer, stop: {}, is_stopping_allowed: {}, file_transfer_enabled: {}", stop, is_stopping_allowed, file_transfer_enabled); + if !stop { let conn_id = self.conn_id; ContextSend::proc(|context: &mut Box| -> u32 { clipboard::server_clip_file(context, conn_id, _clip) @@ -431,8 +435,14 @@ impl IpcTaskRunner { clip_file = rx_clip.recv() => match clip_file { Some(_clip) => { #[cfg(windows)] - if !_clip.is_stopping_allowed() || self.file_transfer_enabled { - allow_err!(self.tx.send(Data::ClipboardFile(_clip))); + { + let is_stopping_allowed = _clip.is_stopping_allowed(); + let file_transfer_enabled = self.file_transfer_enabled; + let stop = is_stopping_allowed && !file_transfer_enabled; + log::debug!("Process clipboard message from cm, stop: {}, is_stopping_allowed: {}, file_transfer_enabled: {}", stop, is_stopping_allowed, file_transfer_enabled); + if !stop { + allow_err!(self.tx.send(Data::ClipboardFile(_clip))); + } } } None => {