From af6631405f51b766f86bfd189f009ab4e41c89f9 Mon Sep 17 00:00:00 2001 From: xdavidwu Date: Fri, 29 Jul 2022 13:32:40 +0800 Subject: [PATCH] SFTPDocumentsProvider: correct connection resetting --- src/main/java/org/safsftp/SFTPDocumentsProvider.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/safsftp/SFTPDocumentsProvider.java b/src/main/java/org/safsftp/SFTPDocumentsProvider.java index 6424c34..b602d70 100644 --- a/src/main/java/org/safsftp/SFTPDocumentsProvider.java +++ b/src/main/java/org/safsftp/SFTPDocumentsProvider.java @@ -94,6 +94,7 @@ public class SFTPDocumentsProvider extends DocumentsProvider { } catch (IOException e) { // continue with new connection attempt } + connection.close(); } SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getContext()); @@ -102,12 +103,13 @@ public class SFTPDocumentsProvider extends DocumentsProvider { port = settings.getString("port", "22"); } Log.v("SFTP", "connect " + host + ":" + port); + connection = new Connection(host, Integer.parseInt(port)); try { - connection = new Connection(host, Integer.parseInt(port)); connection.connect(null, 10000, 10000); if (!connection.authenticateWithPassword(settings.getString("username", ""), settings.getString("passwd", ""))) { throwOrAddErrorExtra("Authentication failed.", cursor); + connection.close(); connection = null; return null; } @@ -229,12 +231,8 @@ public class SFTPDocumentsProvider extends DocumentsProvider { public Cursor queryRoots(String[] projection) { if (connection != null) { - try { - // XXX: why did we add ping? - connection.ping(); - connection.close(); - } catch (IOException e) { - } + connection.close(); + connection = null; } MatrixCursor result = new MatrixCursor(projection != null ? projection : DEFAULT_ROOT_PROJECTION); -- 2.43.0