From 9ab955bb8eaac10f01ad023113f43c9fa8a1570e Mon Sep 17 00:00:00 2001 From: tom Date: Thu, 21 Jul 2022 16:07:19 +0800 Subject: [PATCH] enable serde feature of bytes, modify struct WriteBlock using Bytes --- Cargo.toml | 2 +- libs/hbb_common/Cargo.toml | 2 +- src/ipc.rs | 3 ++- src/server/connection.rs | 6 +++--- src/ui/cm.rs | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6237afe4e..e84875462 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ rpassword = "7.0" base64 = "0.13" sysinfo = "0.24" num_cpus = "1.13" -bytes = "1.2" +bytes = { version = "1.2", features = ["serde"] } default-net = "0.11.0" wol-rs = "0.9.1" diff --git a/libs/hbb_common/Cargo.toml b/libs/hbb_common/Cargo.toml index 8d34709fe..027aefe79 100644 --- a/libs/hbb_common/Cargo.toml +++ b/libs/hbb_common/Cargo.toml @@ -11,7 +11,7 @@ protobuf = { version = "3.1", features = ["with-bytes"] } tokio = { version = "1.20", features = ["full"] } tokio-util = { version = "0.7", features = ["full"] } futures = "0.3" -bytes = "1.2" +bytes = { version = "1.2", features = ["serde"] } log = "0.4" env_logger = "0.9" socket2 = { version = "0.3", features = ["reuseport"] } diff --git a/src/ipc.rs b/src/ipc.rs index 7df06cd22..532722e38 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -17,6 +17,7 @@ use parity_tokio_ipc::{ }; use serde_derive::{Deserialize, Serialize}; use std::{collections::HashMap, sync::atomic::Ordering}; +use bytes::Bytes; #[cfg(not(windows))] use std::{fs::File, io::prelude::*}; @@ -63,7 +64,7 @@ pub enum FS { WriteBlock { id: i32, file_num: i32, - data: Vec, + data: Bytes, compressed: bool, }, WriteDone { diff --git a/src/server/connection.rs b/src/server/connection.rs index 10a1786fd..f4ed9da2a 100644 --- a/src/server/connection.rs +++ b/src/server/connection.rs @@ -1063,7 +1063,7 @@ impl Connection { self.send_fs(ipc::FS::WriteBlock { id: block.id, file_num: block.file_num, - data: block.data.into(), + data: block.data, compressed: block.compressed, }); } @@ -1363,8 +1363,8 @@ async fn start_ipc( file_num, data, compressed}) = data { - stream.send(&Data::FS(ipc::FS::WriteBlock{id, file_num, data: Vec::new(), compressed})).await?; - stream.send_raw(data).await?; + stream.send(&Data::FS(ipc::FS::WriteBlock{id, file_num, data: Bytes::new(), compressed})).await?; + stream.send_raw(data.into()).await?; } else { stream.send(&data).await?; } diff --git a/src/ui/cm.rs b/src/ui/cm.rs index 1c2b36a93..c1acb6926 100644 --- a/src/ui/cm.rs +++ b/src/ui/cm.rs @@ -263,7 +263,7 @@ impl ConnectionManager { FileTransferBlock { id, file_num, - data: data.into(), + data, compressed, ..Default::default() },