From dcdde78c3b3ed56d78919c38b06aca48ffd45824 Mon Sep 17 00:00:00 2001 From: regis-leray Date: Fri, 15 May 2020 13:38:31 -0400 Subject: [PATCH] #50 - timeout configuration --- src/main/scala/ray/fs2/ftp/Ftp.scala | 3 +++ src/main/scala/ray/fs2/ftp/FtpSettings.scala | 14 +++++++++++--- src/main/scala/ray/fs2/ftp/SFtp.scala | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/scala/ray/fs2/ftp/Ftp.scala b/src/main/scala/ray/fs2/ftp/Ftp.scala index 72fd632..95eeeec 100644 --- a/src/main/scala/ray/fs2/ftp/Ftp.scala +++ b/src/main/scala/ray/fs2/ftp/Ftp.scala @@ -83,6 +83,9 @@ object Ftp { ftpClient.setFileType(FTP.BINARY_FILE_TYPE) } + ftpClient.setConnectTimeout(settings.connectTimeOut) + ftpClient.setDefaultTimeout(settings.timeOut) + if (settings.passiveMode) { ftpClient.enterLocalPassiveMode() } diff --git a/src/main/scala/ray/fs2/ftp/FtpSettings.scala b/src/main/scala/ray/fs2/ftp/FtpSettings.scala index c8425e9..a37538a 100644 --- a/src/main/scala/ray/fs2/ftp/FtpSettings.scala +++ b/src/main/scala/ray/fs2/ftp/FtpSettings.scala @@ -50,6 +50,8 @@ object FtpSettings { sftpIdentity: Option[SftpIdentity], strictHostKeyChecking: Boolean, knownHosts: Option[String], + timeOut: Int, + connectTimeOut: Int, sshConfig: SshConfig ) extends FtpSettings[JSFTPClient] @@ -63,6 +65,8 @@ object FtpSettings { sftpIdentity = None, strictHostKeyChecking = false, knownHosts = None, + 0, + 0, new DefaultSshConfig() ) @@ -74,6 +78,8 @@ object FtpSettings { sftpIdentity = Some(identity), strictHostKeyChecking = false, knownHosts = None, + 0, + 0, new DefaultSshConfig() ) } @@ -85,16 +91,18 @@ object FtpSettings { binary: Boolean, passiveMode: Boolean, proxy: Option[Proxy], - secure: Boolean + secure: Boolean, + timeOut: Int, + connectTimeOut: Int ) extends FtpSettings[JFTPClient] object UnsecureFtpSettings { def apply(host: String, port: Int, creds: FtpCredentials): UnsecureFtpSettings = - new UnsecureFtpSettings(host, port, creds, true, true, None, false) + new UnsecureFtpSettings(host, port, creds, true, true, None, false, 0, 0) def secure(host: String, port: Int, creds: FtpCredentials): UnsecureFtpSettings = - new UnsecureFtpSettings(host, port, creds, true, true, None, true) + new UnsecureFtpSettings(host, port, creds, true, true, None, true, 0, 0) } } diff --git a/src/main/scala/ray/fs2/ftp/SFtp.scala b/src/main/scala/ray/fs2/ftp/SFtp.scala index d2d8c27..26010d0 100644 --- a/src/main/scala/ray/fs2/ftp/SFtp.scala +++ b/src/main/scala/ray/fs2/ftp/SFtp.scala @@ -104,6 +104,9 @@ object SFtp { else knownHosts.map(new File(_)).foreach(ssh.loadKnownHosts) + ssh.setTimeout(settings.timeOut) + ssh.setConnectTimeout(settings.connectTimeOut) + ssh.connect(host, port) sftpIdentity