mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-24 05:31:03 +03:00
add: server override
This commit is contained in:
@@ -11,7 +11,7 @@ use clipboard::{
|
||||
get_rx_clip_client, server_clip_file,
|
||||
};
|
||||
use enigo::{self, Enigo, KeyboardControllable};
|
||||
use hbb_common::fs::{get_string, is_file_exists};
|
||||
use hbb_common::fs::{get_string, is_file_exists, new_send_confirm};
|
||||
use hbb_common::log::log;
|
||||
use hbb_common::{
|
||||
allow_err,
|
||||
@@ -1760,7 +1760,7 @@ impl Remote {
|
||||
|
||||
async fn handle_msg_from_peer(&mut self, data: &[u8], peer: &mut Stream) -> bool {
|
||||
if let Ok(msg_in) = Message::parse_from_bytes(&data) {
|
||||
println!("recved msg from peer, decoded: {:?}", msg_in);
|
||||
// println!("recved msg from peer, decoded: {:?}", msg_in);
|
||||
match msg_in.union {
|
||||
Some(message::Union::video_frame(vf)) => {
|
||||
if !self.first_frame {
|
||||
@@ -1841,14 +1841,13 @@ impl Remote {
|
||||
}
|
||||
}
|
||||
Some(file_response::Union::digest(digest)) => {
|
||||
log::info!("recv file transfer digest");
|
||||
if let Some(job) = fs::get_job(digest.id, &mut self.write_jobs) {
|
||||
if let Some(file) = job.files().get(digest.file_num as usize) {
|
||||
let write_path = get_string(&job.join(&file.name));
|
||||
let overwrite_strategy = job.default_overwrite_strategy();
|
||||
match fs::is_write_need_confirmation(&write_path, &digest) {
|
||||
Ok(res) => {
|
||||
if res {
|
||||
if res.is_some() {
|
||||
// need confirm
|
||||
if overwrite_strategy.is_none() {
|
||||
self.handler.call(
|
||||
@@ -1860,36 +1859,27 @@ impl Remote {
|
||||
),
|
||||
);
|
||||
} else {
|
||||
let mut msg = Message::new();
|
||||
let mut file_action = FileAction::new();
|
||||
file_action
|
||||
.set_send_confirm(FileTransferSendConfirmRequest {
|
||||
let msg = new_send_confirm(
|
||||
FileTransferSendConfirmRequest {
|
||||
id: digest.id,
|
||||
file_num: digest.file_num,
|
||||
union: Some(
|
||||
if overwrite_strategy.unwrap() {
|
||||
file_transfer_send_confirm_request::Union::offset_blk(0)
|
||||
} else {
|
||||
file_transfer_send_confirm_request::Union::skip(true)
|
||||
},
|
||||
),
|
||||
union: if overwrite_strategy.unwrap() {
|
||||
Some(file_transfer_send_confirm_request::Union::offset_blk(0))
|
||||
} else {
|
||||
Some(file_transfer_send_confirm_request::Union::skip(true))
|
||||
},
|
||||
..Default::default()
|
||||
});
|
||||
msg.set_file_action(file_action);
|
||||
},
|
||||
);
|
||||
allow_err!(peer.send(&msg).await);
|
||||
}
|
||||
} else {
|
||||
// file with digest need send
|
||||
let mut msg = Message::new();
|
||||
let mut file_action = FileAction::new();
|
||||
file_action
|
||||
.set_send_confirm(FileTransferSendConfirmRequest {
|
||||
let msg= new_send_confirm(FileTransferSendConfirmRequest {
|
||||
id: digest.id,
|
||||
file_num: digest.file_num,
|
||||
union: Some(file_transfer_send_confirm_request::Union::offset_blk(0)),
|
||||
union: Some(file_transfer_send_confirm_request::Union::skip(true)),
|
||||
..Default::default()
|
||||
});
|
||||
msg.set_file_action(file_action);
|
||||
allow_err!(peer.send(&msg).await);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user