From 47cd112e69b428ef31bdef1958622b608884a3b8 Mon Sep 17 00:00:00 2001 From: veeso Date: Sun, 4 Apr 2021 16:32:39 +0200 Subject: [PATCH] FTP: transfer type set to binary --- CHANGELOG.md | 1 + src/filetransfer/ftp_transfer.rs | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b1278b..51380c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ Released on FIXME: - Bugfix: + - [Issue 18](https://github.com/veeso/termscp/issues/18): Set file transfer type to `Binary` for FTP - [Issue 10](https://github.com/veeso/termscp/issues/10): Fixed port not being loaded from bookmarks into gui - [Issue 9](https://github.com/veeso/termscp/issues/9): Fixed issues related to paths on remote when using Windows - Dependencies: diff --git a/src/filetransfer/ftp_transfer.rs b/src/filetransfer/ftp_transfer.rs index cef0d15..78863f3 100644 --- a/src/filetransfer/ftp_transfer.rs +++ b/src/filetransfer/ftp_transfer.rs @@ -38,7 +38,7 @@ use crate::utils::parser::{parse_datetime, parse_lstime}; // Includes use ftp4::native_tls::TlsConnector; -use ftp4::FtpStream; +use ftp4::{types::FileType, FtpStream}; use regex::Regex; use std::path::{Path, PathBuf}; use std::time::SystemTime; @@ -370,7 +370,14 @@ impl FileTransfer for FtpFileTransfer { if let Err(err) = stream.login(username.as_str(), password.as_str()) { return Err(FileTransferError::new_ex( FileTransferErrorType::AuthenticationFailed, - format!("{}", err), + err.to_string(), + )); + } + // Initialize file type + if let Err(err) = stream.transfer_type(FileType::Binary) { + return Err(FileTransferError::new_ex( + FileTransferErrorType::ProtocolError, + err.to_string(), )); } // Set stream