From 83c75409e8e29e858bd5c6d4cd4593208e400819 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Thu, 12 May 2022 14:16:06 +0800 Subject: [PATCH] add: msg --- libs/hbb_common/protos/message.proto | 1 + src/ipc.rs | 5 +++++ src/server/connection.rs | 8 ++++++++ src/ui/remote.rs | 9 +++++++-- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/libs/hbb_common/protos/message.proto b/libs/hbb_common/protos/message.proto index 448108887..00c4bda49 100644 --- a/libs/hbb_common/protos/message.proto +++ b/libs/hbb_common/protos/message.proto @@ -264,6 +264,7 @@ message FileResponse { FileTransferError error = 3; FileTransferDone done = 4; FileTransferDigest digest = 5; + FileTransferDirOffsetRequest offset = 6; } } diff --git a/src/ipc.rs b/src/ipc.rs index 7dde792e3..b976f2ec6 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -59,6 +59,11 @@ pub enum FS { id: i32, file_num: i32, }, + WriteOffset { + id: i32, + file_num: i32, + offset_blk: u32 + }, CheckDigest { id: i32, file_num: i32, diff --git a/src/server/connection.rs b/src/server/connection.rs index c1984e0e3..92368fc0c 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -1053,6 +1053,14 @@ impl Connection { last_modified: d.last_modified, is_upload: true, }), + Some(file_response::Union::offset(offset)) => { + // TODO: i32 + // self.send_fs(ipc::FS::WriteOffset { + // id: offset.id, + // file_num: offset.file_num, + // offset_blk: offset.offset_blk, + // }); + } _ => {} }, Some(message::Union::misc(misc)) => match misc.union { diff --git a/src/ui/remote.rs b/src/ui/remote.rs index 5fb7b3561..bc7da1791 100644 --- a/src/ui/remote.rs +++ b/src/ui/remote.rs @@ -1319,7 +1319,7 @@ async fn io_loop(handler: Handler) { clipboard_file_context: None, }; remote.io_loop(&key, &token).await; - remote.sync_jobs_status_to_local(); + remote.sync_jobs_status_to_local().await; } struct RemoveJob { @@ -1452,7 +1452,7 @@ impl Remote { } } } - self.sync_jobs_status_to_local(); + self.sync_jobs_status_to_local().await; log::debug!("Exit io_loop of id={}", self.handler.id); } Err(err) => { @@ -1798,6 +1798,7 @@ impl Remote { } async fn sync_jobs_status_to_local(&mut self) -> bool { + println!("sync job status"); let mut config: PeerConfig = self.handler.load_config(); let mut transfer_metas = TransferSerde::default(); for job in self.read_jobs.iter() { @@ -1896,6 +1897,10 @@ impl Remote { job.files = entries; } } + Some(file_response::Union::offset(offset)) => { + // TODO: offset + // upload + } Some(file_response::Union::digest(digest)) => { if digest.is_upload { if let Some(job) = fs::get_job(digest.id, &mut self.read_jobs) {