From 056f8c7c7f2213a284af59a7825faa97bc51a6f3 Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Sat, 21 Nov 2020 17:37:49 +0100 Subject: [PATCH] is_connected method --- src/filetransfer/mod.rs | 5 +++++ src/filetransfer/sftp_transfer.rs | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/filetransfer/mod.rs b/src/filetransfer/mod.rs index 4d11f07..91bb6be 100644 --- a/src/filetransfer/mod.rs +++ b/src/filetransfer/mod.rs @@ -80,6 +80,11 @@ pub trait FileTransfer { fn disconnect(&mut self) -> Result<(), FileTransferError>; + /// ### is_connected + /// + /// Indicates whether the client is connected to remote + fn is_connected(&self) -> bool; + /// ### pwd /// /// Print working directory diff --git a/src/filetransfer/sftp_transfer.rs b/src/filetransfer/sftp_transfer.rs index bb300bf..ffe93fa 100644 --- a/src/filetransfer/sftp_transfer.rs +++ b/src/filetransfer/sftp_transfer.rs @@ -177,6 +177,13 @@ impl FileTransfer for SftpFileTransfer { } } + /// ### is_connected + /// + /// Indicates whether the client is connected to remote + fn is_connected(&self) -> bool { + self.session.is_some() + } + /// ### pwd /// /// Print working directory @@ -487,11 +494,13 @@ mod tests { assert!(client.session.is_none()); assert!(client.sftp.is_none()); assert_eq!(client.wrkdir, PathBuf::from("~")); + assert_eq!(client.is_connected(), false); } #[test] fn test_filetransfer_sftp_connect() { let mut client: SftpFileTransfer = SftpFileTransfer::new(); + assert_eq!(client.is_connected(), false); assert!(client .connect( String::from("test.rebex.net"), @@ -504,8 +513,10 @@ mod tests { assert!(client.session.is_some()); assert!(client.sftp.is_some()); assert_eq!(client.wrkdir, PathBuf::from("/")); + assert_eq!(client.is_connected(), true); // Disconnect assert!(client.disconnect().is_ok()); + assert_eq!(client.is_connected(), false); } #[test]