From 175acd9f5b1cfc9f4866c4a41ddeac8785ad7fc9 Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Thu, 3 Dec 2020 13:43:40 +0100 Subject: [PATCH] Wait, file_size in recv is completely useless --- src/filetransfer/mod.rs | 2 +- src/filetransfer/sftp_transfer.rs | 14 +++----------- src/ui/activities/filetransfer_activity/session.rs | 4 ++-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/filetransfer/mod.rs b/src/filetransfer/mod.rs index e41ce4f..e588730 100644 --- a/src/filetransfer/mod.rs +++ b/src/filetransfer/mod.rs @@ -196,5 +196,5 @@ pub trait FileTransfer { /// /// Receive file from remote with provided name /// Returns file and its size - fn recv_file(&self, file_name: &Path) -> Result<(Box, usize), FileTransferError>; + fn recv_file(&self, file_name: &Path) -> Result, FileTransferError>; } diff --git a/src/filetransfer/sftp_transfer.rs b/src/filetransfer/sftp_transfer.rs index 3182b9a..c981f75 100644 --- a/src/filetransfer/sftp_transfer.rs +++ b/src/filetransfer/sftp_transfer.rs @@ -32,7 +32,7 @@ use crate::fs::{FsDirectory, FsEntry, FsFile}; // Includes use ssh2::{FileStat, Session, Sftp}; -use std::io::{Read, Seek, Write}; +use std::io::{Read, Write}; use std::net::TcpStream; use std::path::{Path, PathBuf}; use std::time::{Duration, SystemTime}; @@ -433,7 +433,7 @@ impl FileTransfer for SftpFileTransfer { /// ### recv_file /// /// Receive file from remote with provided name - fn recv_file(&self, file_name: &Path) -> Result<(Box, usize), FileTransferError> { + fn recv_file(&self, file_name: &Path) -> Result, FileTransferError> { match self.sftp.as_ref() { None => Err(FileTransferError::new(FileTransferErrorType::UninitializedSession)), Some(sftp) => { @@ -444,15 +444,7 @@ impl FileTransfer for SftpFileTransfer { }; // Open remote file match sftp.open(remote_path.as_path()) { - Ok(mut file) => { - let file_size: usize = - file.seek(std::io::SeekFrom::End(0)).unwrap_or(0) as usize; - // rewind - if let Err(err) = file.seek(std::io::SeekFrom::Start(0)) { - return Err(FileTransferError::new(FileTransferErrorType::IoErr(err))); - } - Ok((Box::new(file), file_size)) - } + Ok(file) => Ok(Box::new(file)), Err(err) => Err(FileTransferError::new_ex(FileTransferErrorType::NoSuchFileOrDirectory, format!("{}", err))), } } diff --git a/src/ui/activities/filetransfer_activity/session.rs b/src/ui/activities/filetransfer_activity/session.rs index d1f6d73..53e4996 100644 --- a/src/ui/activities/filetransfer_activity/session.rs +++ b/src/ui/activities/filetransfer_activity/session.rs @@ -299,7 +299,7 @@ impl FileTransferActivity { Ok(mut local_file) => { // Download file from remote match self.client.recv_file(file.abs_path.as_path()) { - Ok((mut rhnd, file_size)) => { + Ok(mut rhnd) => { // Set popup progress self.input_mode = InputMode::Popup(PopupType::Progress(format!( "Downloading \"{}\"...", @@ -340,7 +340,7 @@ impl FileTransferActivity { ), } // Set progress - self.set_progress(total_bytes_written, file_size); + self.set_progress(total_bytes_written, file.size); // Draw only if a significant progress has been made (performance improvement) if last_progress_val + 0.5 >= self.transfer_progress { // Draw