From 77e77be999ed45dfccf1c3db838821442931eff4 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Thu, 3 Dec 2020 16:52:22 +0530 Subject: Set 10 second timeout on JGit transport commands (#1230) * GitOperation: set a 10 second connection timeout Signed-off-by: Harsh Shandilya * Update changelog Signed-off-by: Harsh Shandilya --- CHANGELOG.md | 1 + .../main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55c855d8..30efefa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ All notable changes to this project will be documented in this file. - Icons in Autofill suggestions are no longer black on almost black in dark mode. - Decrypt screen would stay in memory infinitely, allowing passwords to be seen without re-auth - Git commits in the store would wrongly use the 'default' committer as opposed to the user's configured one +- Connection attempts now use a reasonable 10 second timeout as opposed to the default of 30 seconds ### Changed diff --git a/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt b/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt index 491feaf0..5649e8de 100644 --- a/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt +++ b/app/src/main/java/com/zeapo/pwdstore/git/operation/GitOperation.kt @@ -108,6 +108,7 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { (transport as? SshTransport)?.sshSessionFactory = sshSessionFactory credentialsProvider?.let { transport.credentialsProvider = it } } + command.setTimeout(CONNECT_TIMEOUT) } } @@ -204,4 +205,12 @@ abstract class GitOperation(protected val callingActivity: FragmentActivity) { sshSessionFactory?.close() } } + + companion object { + + /** + * Timeout in seconds before [TransportCommand] will abort a stalled IO operation. + */ + private const val CONNECT_TIMEOUT = 10 + } } -- cgit v1.2.3