mirror of
https://github.com/veeso/termscp.git
synced 2025-12-07 09:36:00 -08:00
Welcome messages
This commit is contained in:
@@ -225,7 +225,7 @@ impl FileTransfer for FtpFileTransfer {
|
||||
port: u16,
|
||||
username: Option<String>,
|
||||
password: Option<String>,
|
||||
) -> Result<(), FileTransferError> {
|
||||
) -> Result<Option<String>, FileTransferError> {
|
||||
// Get stream
|
||||
let mut stream: FtpStream = match FtpStream::connect(format!("{}:{}", address, port)) {
|
||||
Ok(stream) => stream,
|
||||
@@ -273,7 +273,7 @@ impl FileTransfer for FtpFileTransfer {
|
||||
// Set stream
|
||||
self.stream = Some(stream);
|
||||
// Return OK
|
||||
Ok(())
|
||||
Ok(self.stream.as_ref().unwrap().get_welcome_msg())
|
||||
}
|
||||
|
||||
/// ### disconnect
|
||||
|
||||
@@ -127,6 +127,7 @@ pub trait FileTransfer {
|
||||
/// ### connect
|
||||
///
|
||||
/// Connect to the remote server
|
||||
/// Can return banner / welcome message on success
|
||||
|
||||
fn connect(
|
||||
&mut self,
|
||||
@@ -134,7 +135,7 @@ pub trait FileTransfer {
|
||||
port: u16,
|
||||
username: Option<String>,
|
||||
password: Option<String>,
|
||||
) -> Result<(), FileTransferError>;
|
||||
) -> Result<Option<String>, FileTransferError>;
|
||||
|
||||
/// ### disconnect
|
||||
///
|
||||
|
||||
@@ -195,7 +195,7 @@ impl FileTransfer for SftpFileTransfer {
|
||||
port: u16,
|
||||
username: Option<String>,
|
||||
password: Option<String>,
|
||||
) -> Result<(), FileTransferError> {
|
||||
) -> Result<Option<String>, FileTransferError> {
|
||||
// Setup tcp stream
|
||||
let tcp: TcpStream = match TcpStream::connect(format!("{}:{}", address, port)) {
|
||||
Ok(stream) => stream,
|
||||
@@ -258,10 +258,14 @@ impl FileTransfer for SftpFileTransfer {
|
||||
}
|
||||
};
|
||||
// Set session
|
||||
let banner: Option<String> = match session.banner() {
|
||||
Some(s) => Some(String::from(s)),
|
||||
None => None,
|
||||
};
|
||||
self.session = Some(session);
|
||||
// Set sftp
|
||||
self.sftp = Some(sftp);
|
||||
Ok(())
|
||||
Ok(banner)
|
||||
}
|
||||
|
||||
/// ### disconnect
|
||||
|
||||
@@ -38,7 +38,11 @@ impl FileTransferActivity {
|
||||
self.params.username.clone(),
|
||||
self.params.password.clone(),
|
||||
) {
|
||||
Ok(_) => {
|
||||
Ok(welcome) => {
|
||||
if let Some(banner) = welcome {
|
||||
// Log welcome
|
||||
self.log(LogLevel::Info, format!("Established connection with '{}': \"{}\"", self.params.address, banner).as_ref());
|
||||
}
|
||||
// Set state to explorer
|
||||
self.input_mode = InputMode::Explorer;
|
||||
self.reload_remote_dir();
|
||||
|
||||
Reference in New Issue
Block a user