fix: rebase conflict

This commit is contained in:
Kingtous 2022-05-13 14:46:37 +08:00
parent 8a6c3fe70a
commit c96c0df645
8 changed files with 92 additions and 38 deletions

View File

@ -1,3 +1,8 @@
use crate::log;
use directories_next::ProjectDirs;
use rand::Rng;
use serde_derive::{Deserialize, Serialize};
use sodiumoxide::crypto::sign;
use std::{ use std::{
collections::HashMap, collections::HashMap,
fs, fs,

View File

@ -230,7 +230,7 @@ pub struct TransferJobMeta {
#[serde(default)] #[serde(default)]
pub file_num: i32, pub file_num: i32,
#[serde(default)] #[serde(default)]
pub is_remote: bool pub is_remote: bool,
} }
#[derive(Debug, Default, Serialize, Deserialize, Clone)] #[derive(Debug, Default, Serialize, Deserialize, Clone)]
@ -299,11 +299,10 @@ impl TransferJob {
file_num: i32, file_num: i32,
show_hidden: bool, show_hidden: bool,
is_remote: bool, is_remote: bool,
include_hidden: bool,
enable_override_detection: bool, enable_override_detection: bool,
) -> ResultType<Self> { ) -> ResultType<Self> {
log::info!("new read {}", path); log::info!("new read {}", path);
let files = get_recursive_files(&path, include_hidden)?; let files = get_recursive_files(&path, show_hidden)?;
let total_size = files.iter().map(|x| x.size as u64).sum(); let total_size = files.iter().map(|x| x.size as u64).sum();
Ok(Self { Ok(Self {
id, id,
@ -597,7 +596,7 @@ impl TransferJob {
to: self.path.to_string_lossy().to_string(), to: self.path.to_string_lossy().to_string(),
file_num: self.file_num, file_num: self.file_num,
show_hidden: self.show_hidden, show_hidden: self.show_hidden,
is_remote: self.is_remote is_remote: self.is_remote,
} }
} }
} }

View File

@ -535,14 +535,14 @@ impl AudioHandler {
} }
self.simple = Some(Simple::new( self.simple = Some(Simple::new(
None, // Use the default server None, // Use the default server
&crate::get_app_name(), // Our applications name &crate::get_app_name(), // Our applications name
Direction::Playback, // We want a playback stream Direction::Playback, // We want a playback stream
None, // Use the default device None, // Use the default device
"playback", // Description of our stream "playback", // Description of our stream
&spec, // Our sample format &spec, // Our sample format
None, // Use default channel map None, // Use default channel map
None, // Use default buffering attributes None, // Use default buffering attributes
)?); )?);
self.sample_rate = (format0.sample_rate, format0.sample_rate); self.sample_rate = (format0.sample_rate, format0.sample_rate);
Ok(()) Ok(())

View File

@ -80,9 +80,10 @@ pub trait FileManager: Interface {
id: i32, id: i32,
path: String, path: String,
to: String, to: String,
file_num: i32,
include_hidden: bool, include_hidden: bool,
is_remote: bool, is_remote: bool,
) { ) {
self.send(Data::SendFiles((id, path, to, include_hidden, is_remote))); self.send(Data::SendFiles((id, path, to, file_num, include_hidden, is_remote)));
} }
} }

View File

@ -267,7 +267,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
("Account", "Аккаунт"), ("Account", "Аккаунт"),
("Quit", "Выйти"), ("Quit", "Выйти"),
("Overwrite", "крышка"), ("Overwrite", "крышка"),
("This file exists, skip or overwrite this file?", "Этот файл существует, пропустить или перезаписать этот файл?") ("This file exists, skip or overwrite this file?", "Этот файл существует, пропустить или перезаписать этот файл?"),
("doc_mac_permission", "https://rustdesk.com/docs/en/manual/mac/#enable-permissions"), ("doc_mac_permission", "https://rustdesk.com/docs/en/manual/mac/#enable-permissions"),
("Help", "Помощь"), ("Help", "Помощь"),
].iter().cloned().collect(); ].iter().cloned().collect();

View File

@ -3,9 +3,10 @@ use super::{input_service::*, *};
use crate::clipboard_file::*; use crate::clipboard_file::*;
#[cfg(not(any(target_os = "android", target_os = "ios")))] #[cfg(not(any(target_os = "android", target_os = "ios")))]
use crate::common::update_clipboard; use crate::common::update_clipboard;
use crate::ipc;
#[cfg(any(target_os = "android", target_os = "ios"))] #[cfg(any(target_os = "android", target_os = "ios"))]
use crate::{common::MOBILE_INFO2, mobile::connection_manager::start_channel}; use crate::{common::MOBILE_INFO2, mobile::connection_manager::start_channel};
use crate::{ipc, VERSION};
use hbb_common::fs::can_enable_overwrite_detection;
use hbb_common::log::debug; use hbb_common::log::debug;
use hbb_common::message_proto::file_transfer_send_confirm_request::Union; use hbb_common::message_proto::file_transfer_send_confirm_request::Union;
use hbb_common::{ use hbb_common::{
@ -974,7 +975,16 @@ impl Connection {
let id = s.id; let id = s.id;
let od = let od =
can_enable_overwrite_detection(get_version_number(VERSION)); can_enable_overwrite_detection(get_version_number(VERSION));
match fs::TransferJob::new_read(id, s.path.clone(), s.file_num, s.include_hidden, od) { let path = s.path.clone();
match fs::TransferJob::new_read(
id,
"".to_string(),
path.clone(),
s.file_num,
s.include_hidden,
false,
od,
) {
Err(err) => { Err(err) => {
self.send(fs::new_error(id, err, 0)).await; self.send(fs::new_error(id, err, 0)).await;
} }

View File

@ -179,7 +179,7 @@ impl ConnectionManager {
..Default::default() ..Default::default()
}) })
.collect(), .collect(),
od, od,
)); ));
} }
ipc::FS::CancelWrite { id } => { ipc::FS::CancelWrite { id } => {
@ -278,10 +278,10 @@ impl ConnectionManager {
} }
} }
ipc::FS::WriteOffset { ipc::FS::WriteOffset {
id,file_num,offset_blk id,
} => { file_num,
offset_blk,
} } => {}
}, },
#[cfg(windows)] #[cfg(windows)]
Data::ClipbaordFile(_clip) => { Data::ClipbaordFile(_clip) => {

View File

@ -20,7 +20,6 @@ use clipboard::{
get_rx_clip_client, server_clip_file, get_rx_clip_client, server_clip_file,
}; };
use enigo::{self, Enigo, KeyboardControllable}; use enigo::{self, Enigo, KeyboardControllable};
use hbb_common::{config::TransferSerde, fs::TransferJobMeta};
use hbb_common::fs::{ use hbb_common::fs::{
can_enable_overwrite_detection, get_string, is_file_exists, new_send_confirm, can_enable_overwrite_detection, get_string, is_file_exists, new_send_confirm,
DigestCheckResult, RemoveJobMeta, DigestCheckResult, RemoveJobMeta,
@ -41,6 +40,7 @@ use hbb_common::{
}, },
Stream, Stream,
}; };
use hbb_common::{config::TransferSerde, fs::TransferJobMeta};
#[cfg(windows)] #[cfg(windows)]
use crate::clipboard_file::*; use crate::clipboard_file::*;
@ -1538,7 +1538,7 @@ impl Remote {
async fn load_last_jobs(&mut self) { async fn load_last_jobs(&mut self) {
log::info!("start load last jobs"); log::info!("start load last jobs");
self.handler.call("clearAllJobs",&make_args!()); self.handler.call("clearAllJobs", &make_args!());
let pc = self.handler.load_config(); let pc = self.handler.load_config();
if pc.transfer.write_jobs.is_empty() && pc.transfer.read_jobs.is_empty() { if pc.transfer.write_jobs.is_empty() && pc.transfer.read_jobs.is_empty() {
// no last jobs // no last jobs
@ -1549,21 +1549,37 @@ impl Remote {
for job_str in pc.transfer.read_jobs.iter() { for job_str in pc.transfer.read_jobs.iter() {
let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str); let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str);
if let Ok(job) = job { if let Ok(job) = job {
self.handler.call("addJob",&make_args!( self.handler.call(
cnt,job.to.clone(),job.remote.clone(),job.file_num,job.show_hidden, false "addJob",
)); &make_args!(
cnt,
job.to.clone(),
job.remote.clone(),
job.file_num,
job.show_hidden,
false
),
);
cnt += 1; cnt += 1;
println!("restore read_job: {:?}",job); println!("restore read_job: {:?}", job);
} }
} }
for job_str in pc.transfer.write_jobs.iter() { for job_str in pc.transfer.write_jobs.iter() {
let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str); let job: Result<TransferJobMeta, serde_json::Error> = serde_json::from_str(&job_str);
if let Ok(job) = job { if let Ok(job) = job {
self.handler.call("addJob",&make_args!( self.handler.call(
cnt,job.remote.clone(),job.to.clone(),job.file_num,job.show_hidden, true "addJob",
)); &make_args!(
cnt,
job.remote.clone(),
job.to.clone(),
job.file_num,
job.show_hidden,
true
),
);
cnt += 1; cnt += 1;
println!("restore write_job: {:?}",job); println!("restore write_job: {:?}", job);
} }
} }
self.handler.call("updateTransferList", &make_args!()); self.handler.call("updateTransferList", &make_args!());
@ -1586,16 +1602,35 @@ impl Remote {
Data::Message(msg) => { Data::Message(msg) => {
allow_err!(peer.send(&msg).await); allow_err!(peer.send(&msg).await);
} }
Data::SendFiles((id, path, to,file_num, include_hidden, is_remote)) => { Data::SendFiles((id, path, to, file_num, include_hidden, is_remote)) => {
log::info!("send files, is remote {}", is_remote); log::info!("send files, is remote {}", is_remote);
let od = can_enable_overwrite_detection(self.handler.lc.read().unwrap().version); let od = can_enable_overwrite_detection(self.handler.lc.read().unwrap().version);
if is_remote { if is_remote {
log::debug!("New job {}, write to {} from remote {}", id, to, path); log::debug!("New job {}, write to {} from remote {}", id, to, path);
self.write_jobs self.write_jobs.push(fs::TransferJob::new_write(
.push(fs::TransferJob::new_write(id, path.clone(),to,file_num, include_hidden, is_remote, Vec::new(), od)); id,
allow_err!(peer.send(&fs::new_send(id, path,file_num, include_hidden)).await); path.clone(),
to,
file_num,
include_hidden,
is_remote,
Vec::new(),
od,
));
allow_err!(
peer.send(&fs::new_send(id, path, file_num, include_hidden))
.await
);
} else { } else {
match fs::TransferJob::new_read(id, to.clone(), path.clone(), file_num,include_hidden,is_remote, include_hidden, od) { match fs::TransferJob::new_read(
id,
to.clone(),
path.clone(),
file_num,
include_hidden,
is_remote,
od,
) {
Err(err) => { Err(err) => {
self.handle_job_status(id, -1, Some(err.to_string())); self.handle_job_status(id, -1, Some(err.to_string()));
} }
@ -1927,7 +1962,7 @@ impl Remote {
} }
self.handler.call("updateFolderFiles", &make_args!(m)); self.handler.call("updateFolderFiles", &make_args!(m));
if let Some(job) = fs::get_job(fd.id, &mut self.write_jobs) { if let Some(job) = fs::get_job(fd.id, &mut self.write_jobs) {
log::info!("job set_files: {:?}",entries); log::info!("job set_files: {:?}", entries);
job.set_files(entries); job.set_files(entries);
} else if let Some(job) = self.remove_jobs.get_mut(&fd.id) { } else if let Some(job) = self.remove_jobs.get_mut(&fd.id) {
job.files = entries; job.files = entries;
@ -2032,7 +2067,11 @@ impl Remote {
} }
} }
Some(file_response::Union::block(block)) => { Some(file_response::Union::block(block)) => {
log::info!("file response block, file id:{}, file num: {}",block.id, block.file_num); log::info!(
"file response block, file id:{}, file num: {}",
block.id,
block.file_num
);
if let Some(job) = fs::get_job(block.id, &mut self.write_jobs) { if let Some(job) = fs::get_job(block.id, &mut self.write_jobs) {
if let Err(_err) = job.write(block, None).await { if let Err(_err) = job.write(block, None).await {
// to-do: add "skip" for writing job // to-do: add "skip" for writing job