This is an automated email from the ASF dual-hosted git repository.

joewitt pushed a commit to branch support/nifi-1.16
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 248626efcb8bffb2e36e2ae73e1dc0273e926db3
Author: exceptionfactory <exceptionfact...@apache.org>
AuthorDate: Fri Jun 3 10:50:42 2022 -0500

    NIFI-10088 Set SSH Transport Timeout using SFTP Data Timeout property
    
    Signed-off-by: Nathan Gough <thena...@gmail.com>
    
    This closes #6097.
---
 .../nifi/processors/standard/ssh/StandardSSHClientProvider.java    | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
index 2924934a4a..1a612c9292 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ssh/StandardSSHClientProvider.java
@@ -20,6 +20,7 @@ import net.schmizz.keepalive.KeepAlive;
 import net.schmizz.sshj.Config;
 import net.schmizz.sshj.SSHClient;
 import net.schmizz.sshj.connection.Connection;
+import net.schmizz.sshj.transport.Transport;
 import net.schmizz.sshj.transport.TransportException;
 import net.schmizz.sshj.transport.verification.PromiscuousVerifier;
 import net.schmizz.sshj.userauth.keyprovider.KeyFormat;
@@ -146,6 +147,12 @@ public class StandardSSHClientProvider implements 
SSHClientProvider {
         final int dataTimeout = 
context.getProperty(DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue();
         client.setTimeout(dataTimeout);
 
+        // Set Transport and Connection timeouts using Socket Data Timeout 
property
+        final Transport transport = client.getTransport();
+        transport.setTimeoutMs(dataTimeout);
+        final Connection connection = client.getConnection();
+        connection.setTimeoutMs(dataTimeout);
+
         final boolean strictHostKeyChecking = 
context.getProperty(STRICT_HOST_KEY_CHECKING).asBoolean();
         final String hostKeyFilePath = 
context.getProperty(HOST_KEY_FILE).getValue();
         if (StringUtils.isNotBlank(hostKeyFilePath)) {

Reply via email to