From a35779448153e87eaf7c307afb496ebd084b45f7 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sat, 31 Dec 2022 12:31:29 +0100 Subject: [PATCH] Schrack: Fix connection leak on failed setup --- schrack/integrationpluginschrack.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/schrack/integrationpluginschrack.cpp b/schrack/integrationpluginschrack.cpp index a329e92..1dcaa88 100644 --- a/schrack/integrationpluginschrack.cpp +++ b/schrack/integrationpluginschrack.cpp @@ -105,12 +105,14 @@ void IntegrationPluginSchrack::setupThing(ThingSetupInfo *info) } }); - connect(cionConnection, &CionModbusRtuConnection::initializationFinished, info, [info, cionConnection](bool success){ + connect(cionConnection, &CionModbusRtuConnection::initializationFinished, info, [=](bool success){ qCDebug(dcSchrack()) << "Initialisation finsihed" << success; if (success) { qCDebug(dcSchrack) << "DIP switche states:" << cionConnection->dipSwitches(); + m_cionConnections.insert(thing, cionConnection); info->finish(Thing::ThingErrorNoError); } else { + delete cionConnection; info->finish(Thing::ThingErrorHardwareNotAvailable); } }); @@ -201,7 +203,6 @@ void IntegrationPluginSchrack::setupThing(ThingSetupInfo *info) // To prevent running out of sync we'll "uncache" min/max values too. thing->setStateMinMaxValues(cionMaxChargingCurrentStateTypeId, 6, 32); - m_cionConnections.insert(thing, cionConnection); } void IntegrationPluginSchrack::postSetupThing(Thing *thing)