From 8caf873ac525eccfe5ba14683bf59c1a9d038aa1 Mon Sep 17 00:00:00 2001 From: Sam Anglin Date: Tue, 2 Dec 2025 13:17:49 +0200 Subject: [PATCH 1/3] Test --- .../SftpConnectionProviderTest.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/PhpseclibV3/SftpConnectionProviderTest.php b/src/PhpseclibV3/SftpConnectionProviderTest.php index 6bcb82391..0879802e3 100644 --- a/src/PhpseclibV3/SftpConnectionProviderTest.php +++ b/src/PhpseclibV3/SftpConnectionProviderTest.php @@ -75,6 +75,25 @@ public function trying_until_5_tries(): void $this->assertSame($connection, $sameConnection); } + /** + * @test + */ + public function reset_connection(): void + { + $provider = SftpConnectionProvider::fromArray( + [ + 'host' => 'localhost', + 'username' => 'foo', + 'password' => 'pass', + 'port' => 2222, + ] + ); + $connection = $provider->provideConnection(); + $resetConnection = $provider->resetConnection(); + + $this->assertNotSame($connection, $resetConnection); + } + /** * @test */ From 74d4204edbf93e76e21e6dddc9808aa9cf5a671d Mon Sep 17 00:00:00 2001 From: Sam Anglin Date: Tue, 2 Dec 2025 13:17:55 +0200 Subject: [PATCH 2/3] Method --- src/PhpseclibV3/SftpConnectionProvider.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/PhpseclibV3/SftpConnectionProvider.php b/src/PhpseclibV3/SftpConnectionProvider.php index b65d3179b..19f7d3b41 100644 --- a/src/PhpseclibV3/SftpConnectionProvider.php +++ b/src/PhpseclibV3/SftpConnectionProvider.php @@ -91,6 +91,13 @@ public function disconnect(): void } } + public function resetConnection(): SFTP + { + $this->disconnect(); + + return $this->setupConnection(); + } + private function setupConnection(): SFTP { $connection = new SFTP($this->host, $this->port, $this->timeout); From 667c6e9dfcb2411c22460ba09bb54c0bfd5f8c6b Mon Sep 17 00:00:00 2001 From: Sam Anglin Date: Tue, 2 Dec 2025 13:27:10 +0200 Subject: [PATCH 3/3] Need to reSET the connection --- src/PhpseclibV3/SftpConnectionProvider.php | 2 +- src/PhpseclibV3/SftpConnectionProviderTest.php | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/PhpseclibV3/SftpConnectionProvider.php b/src/PhpseclibV3/SftpConnectionProvider.php index 19f7d3b41..899f4e9f1 100644 --- a/src/PhpseclibV3/SftpConnectionProvider.php +++ b/src/PhpseclibV3/SftpConnectionProvider.php @@ -95,7 +95,7 @@ public function resetConnection(): SFTP { $this->disconnect(); - return $this->setupConnection(); + return $this->connection = $this->setupConnection(); } private function setupConnection(): SFTP diff --git a/src/PhpseclibV3/SftpConnectionProviderTest.php b/src/PhpseclibV3/SftpConnectionProviderTest.php index 0879802e3..13b8a0f2f 100644 --- a/src/PhpseclibV3/SftpConnectionProviderTest.php +++ b/src/PhpseclibV3/SftpConnectionProviderTest.php @@ -92,6 +92,7 @@ public function reset_connection(): void $resetConnection = $provider->resetConnection(); $this->assertNotSame($connection, $resetConnection); + $this->assertSame($resetConnection, $provider->provideConnection()); } /**