opt: name, imports
This commit is contained in:
parent
265e3c760e
commit
02f214e39a
@ -270,7 +270,7 @@ message FileResponse {
|
|||||||
message FileTransferDigest {
|
message FileTransferDigest {
|
||||||
int32 id = 1;
|
int32 id = 1;
|
||||||
sint32 file_num = 2;
|
sint32 file_num = 2;
|
||||||
uint64 last_edit_timestamp = 3;
|
uint64 last_modified = 3;
|
||||||
uint64 file_size = 4;
|
uint64 file_size = 4;
|
||||||
bool is_upload = 5;
|
bool is_upload = 5;
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ use crate::{
|
|||||||
compress::{compress, decompress},
|
compress::{compress, decompress},
|
||||||
config::{Config, COMPRESS_LEVEL},
|
config::{Config, COMPRESS_LEVEL},
|
||||||
};
|
};
|
||||||
use log::log;
|
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
use std::os::windows::prelude::*;
|
use std::os::windows::prelude::*;
|
||||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||||
@ -472,7 +471,7 @@ impl TransferJob {
|
|||||||
resp.set_digest(FileTransferDigest {
|
resp.set_digest(FileTransferDigest {
|
||||||
id: self.id,
|
id: self.id,
|
||||||
file_num: self.file_num,
|
file_num: self.file_num,
|
||||||
last_edit_timestamp: last_modified,
|
last_modified,
|
||||||
file_size: meta.len(),
|
file_size: meta.len(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
@ -647,7 +646,6 @@ pub async fn handle_read_jobs(
|
|||||||
) -> ResultType<()> {
|
) -> ResultType<()> {
|
||||||
let mut finished = Vec::new();
|
let mut finished = Vec::new();
|
||||||
for job in jobs.iter_mut() {
|
for job in jobs.iter_mut() {
|
||||||
// println!("[fs.rs:588] handle_read_jobs. {:?}", job.id);
|
|
||||||
match job.read(stream).await {
|
match job.read(stream).await {
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
stream
|
stream
|
||||||
@ -663,7 +661,7 @@ pub async fn handle_read_jobs(
|
|||||||
finished.push(job.id());
|
finished.push(job.id());
|
||||||
stream.send(&new_done(job.id(), job.file_num())).await?;
|
stream.send(&new_done(job.id(), job.file_num())).await?;
|
||||||
} else {
|
} else {
|
||||||
log::info!("waiting confirmation.");
|
// waiting confirmation.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -718,23 +716,15 @@ pub fn is_write_need_confirmation(
|
|||||||
if path.exists() && path.is_file() {
|
if path.exists() && path.is_file() {
|
||||||
let metadata = std::fs::metadata(path)?;
|
let metadata = std::fs::metadata(path)?;
|
||||||
let modified_time = metadata.modified()?;
|
let modified_time = metadata.modified()?;
|
||||||
let remote_mt = Duration::from_secs(digest.last_edit_timestamp);
|
let remote_mt = Duration::from_secs(digest.last_modified);
|
||||||
let local_mt = modified_time.duration_since(UNIX_EPOCH)?;
|
let local_mt = modified_time.duration_since(UNIX_EPOCH)?;
|
||||||
log::info!(
|
|
||||||
"{:?}:rm:{},lm:{},rf:{},lf:{}",
|
|
||||||
path,
|
|
||||||
remote_mt.as_secs(),
|
|
||||||
local_mt.as_secs(),
|
|
||||||
digest.file_size,
|
|
||||||
metadata.len()
|
|
||||||
);
|
|
||||||
if remote_mt == local_mt && digest.file_size == metadata.len() {
|
if remote_mt == local_mt && digest.file_size == metadata.len() {
|
||||||
return Ok(DigestCheckResult::IsSame);
|
return Ok(DigestCheckResult::IsSame);
|
||||||
}
|
}
|
||||||
Ok(DigestCheckResult::NeedConfirm(FileTransferDigest {
|
Ok(DigestCheckResult::NeedConfirm(FileTransferDigest {
|
||||||
id: digest.id,
|
id: digest.id,
|
||||||
file_num: digest.file_num,
|
file_num: digest.file_num,
|
||||||
last_edit_timestamp: local_mt.as_secs(),
|
last_modified: local_mt.as_secs(),
|
||||||
file_size: metadata.len(),
|
file_size: metadata.len(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}))
|
}))
|
||||||
|
@ -63,7 +63,7 @@ pub enum FS {
|
|||||||
id: i32,
|
id: i32,
|
||||||
file_num: i32,
|
file_num: i32,
|
||||||
file_size: u64,
|
file_size: u64,
|
||||||
modified_time: u64,
|
last_modified: u64,
|
||||||
is_upload: bool,
|
is_upload: bool,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -955,7 +955,6 @@ impl Connection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(message::Union::file_action(fa)) => {
|
Some(message::Union::file_action(fa)) => {
|
||||||
log::info!("recv file_action, {:?}", fa);
|
|
||||||
if self.file_transfer.is_some() {
|
if self.file_transfer.is_some() {
|
||||||
match fa.union {
|
match fa.union {
|
||||||
Some(file_action::Union::read_dir(rd)) => {
|
Some(file_action::Union::read_dir(rd)) => {
|
||||||
@ -1051,7 +1050,7 @@ impl Connection {
|
|||||||
id: d.id,
|
id: d.id,
|
||||||
file_num: d.file_num,
|
file_num: d.file_num,
|
||||||
file_size: d.file_size,
|
file_size: d.file_size,
|
||||||
modified_time: d.last_edit_timestamp,
|
last_modified: d.last_modified,
|
||||||
is_upload: true,
|
is_upload: true,
|
||||||
}),
|
}),
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -192,7 +192,7 @@ impl ConnectionManager {
|
|||||||
id,
|
id,
|
||||||
file_num,
|
file_num,
|
||||||
file_size,
|
file_size,
|
||||||
modified_time,
|
last_modified,
|
||||||
is_upload,
|
is_upload,
|
||||||
} => {
|
} => {
|
||||||
if let Some(job) = fs::get_job(id, write_jobs) {
|
if let Some(job) = fs::get_job(id, write_jobs) {
|
||||||
@ -205,7 +205,7 @@ impl ConnectionManager {
|
|||||||
let digest = FileTransferDigest {
|
let digest = FileTransferDigest {
|
||||||
id,
|
id,
|
||||||
file_num,
|
file_num,
|
||||||
last_edit_timestamp: modified_time,
|
last_modified,
|
||||||
file_size,
|
file_size,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
@ -222,9 +222,6 @@ impl ConnectionManager {
|
|||||||
DigestCheckResult::NeedConfirm(mut digest) => {
|
DigestCheckResult::NeedConfirm(mut digest) => {
|
||||||
// upload to server, but server has the same file, request
|
// upload to server, but server has the same file, request
|
||||||
digest.is_upload = is_upload;
|
digest.is_upload = is_upload;
|
||||||
log::info!(
|
|
||||||
"server has the same file, send server digest to local"
|
|
||||||
);
|
|
||||||
let mut msg_out = Message::new();
|
let mut msg_out = Message::new();
|
||||||
let mut fr = FileResponse::new();
|
let mut fr = FileResponse::new();
|
||||||
fr.set_digest(digest);
|
fr.set_digest(digest);
|
||||||
@ -365,6 +362,7 @@ impl ConnectionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn send(msg: Message, conn: &mut Connection) {
|
async fn send(msg: Message, conn: &mut Connection) {
|
||||||
|
println!("send msg: {:?}", msg);
|
||||||
match msg.write_to_bytes() {
|
match msg.write_to_bytes() {
|
||||||
Ok(bytes) => allow_err!(conn.send(&Data::RawMessage(bytes)).await),
|
Ok(bytes) => allow_err!(conn.send(&Data::RawMessage(bytes)).await),
|
||||||
err => allow_err!(err),
|
err => allow_err!(err),
|
||||||
|
@ -768,6 +768,7 @@ impl Handler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn reconnect(&mut self) {
|
fn reconnect(&mut self) {
|
||||||
|
println!("reconnecting");
|
||||||
let cloned = self.clone();
|
let cloned = self.clone();
|
||||||
let mut lock = self.write().unwrap();
|
let mut lock = self.write().unwrap();
|
||||||
lock.thread.take().map(|t| t.join());
|
lock.thread.take().map(|t| t.join());
|
||||||
@ -1559,7 +1560,6 @@ impl Remote {
|
|||||||
to,
|
to,
|
||||||
job.files().len()
|
job.files().len()
|
||||||
);
|
);
|
||||||
let config = self.handler.lc.read().unwrap().version;
|
|
||||||
let m = make_fd(job.id(), job.files(), true);
|
let m = make_fd(job.id(), job.files(), true);
|
||||||
self.handler.call("updateFolderFiles", &make_args!(m));
|
self.handler.call("updateFolderFiles", &make_args!(m));
|
||||||
let files = job.files().clone();
|
let files = job.files().clone();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user