From cc812e841b7907a19ad5c03abdf203307deaaf78 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 12 Dec 2018 17:16:49 +0100 Subject: [PATCH] RemoteLinux: Use SSH connection sharing in device tester No need to connect more than once during the testing process. Change-Id: I2401a2c1e5b940b6b12e86182d37a099e94680dd Reviewed-by: hjk --- src/plugins/remotelinux/linuxdevicetester.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/remotelinux/linuxdevicetester.cpp b/src/plugins/remotelinux/linuxdevicetester.cpp index 0702c417385..4ef601374cc 100644 --- a/src/plugins/remotelinux/linuxdevicetester.cpp +++ b/src/plugins/remotelinux/linuxdevicetester.cpp @@ -31,6 +31,7 @@ #include #include #include +#include using namespace ProjectExplorer; using namespace QSsh; @@ -65,6 +66,8 @@ GenericLinuxDeviceTester::GenericLinuxDeviceTester(QObject *parent) GenericLinuxDeviceTester::~GenericLinuxDeviceTester() { + if (d->connection) + releaseConnection(d->connection); delete d; } @@ -73,7 +76,8 @@ void GenericLinuxDeviceTester::testDevice(const IDevice::ConstPtr &deviceConfigu QTC_ASSERT(d->state == Inactive, return); d->deviceConfiguration = deviceConfiguration; - d->connection = new SshConnection(deviceConfiguration->sshParameters(), this); + forceNewConnection(deviceConfiguration->sshParameters()); + d->connection = acquireConnection(deviceConfiguration->sshParameters()); connect(d->connection, &SshConnection::connected, this, &GenericLinuxDeviceTester::handleConnected); connect(d->connection, &SshConnection::errorOccurred, @@ -208,7 +212,7 @@ void GenericLinuxDeviceTester::setFinished(TestResult result) } if (d->connection) { disconnect(d->connection, nullptr, this, nullptr); - d->connection->deleteLater(); + releaseConnection(d->connection); d->connection = nullptr; } emit finished(result);