diff --git a/bosswerk/integrationpluginbosswerk.cpp b/bosswerk/integrationpluginbosswerk.cpp index d35b3a35..50127415 100644 --- a/bosswerk/integrationpluginbosswerk.cpp +++ b/bosswerk/integrationpluginbosswerk.cpp @@ -61,6 +61,7 @@ void IntegrationPluginBosswerk::discoverThings(ThingDiscoveryInfo *info) // Unauthorized page which looks unique enough. // If this proves to not be reliable enough, one more option would be to connect to TCP port 8899 which is open // and responds to a proprietary binary protocol which would need to be reverse engineered first. + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, info, [=](const NetworkDeviceInfo &networkDeviceInfo){ qCDebug(dcBosswerk()) << "Probing device" << networkDeviceInfo.address(); diff --git a/fronius/integrationpluginfronius.cpp b/fronius/integrationpluginfronius.cpp index 0420b474..a5758d6a 100644 --- a/fronius/integrationpluginfronius.cpp +++ b/fronius/integrationpluginfronius.cpp @@ -57,6 +57,7 @@ void IntegrationPluginFronius::discoverThings(ThingDiscoveryInfo *info) qCDebug(dcFronius()) << "Starting network discovery..."; NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover(); + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){ ThingDescriptors descriptors; qCDebug(dcFronius()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; diff --git a/goecharger/goediscovery.cpp b/goecharger/goediscovery.cpp index 4475f8c4..e46e5b0a 100644 --- a/goecharger/goediscovery.cpp +++ b/goecharger/goediscovery.cpp @@ -59,11 +59,6 @@ void GoeDiscovery::startDiscovery() qCInfo(dcGoECharger()) << "Discovery: Start discovering the network..."; m_discoveryReply = m_networkDeviceDiscovery->discover(); - // Check if all network device infos which might already be discovered here to save time... - foreach (const NetworkDeviceInfo &networkDeviceInfo, m_discoveryReply->networkDeviceInfos()) { - checkNetworkDevice(networkDeviceInfo); - } - // Test any network device beeing discovered connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &GoeDiscovery::checkNetworkDevice); @@ -71,6 +66,7 @@ void GoeDiscovery::startDiscovery() connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ // The network device discovery is done m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos(); + m_discoveryReply->deleteLater(); m_discoveryReply = nullptr; // Check if all network device infos have been verified diff --git a/keba/kebadiscovery.cpp b/keba/kebadiscovery.cpp index be73dc6a..054b2a57 100644 --- a/keba/kebadiscovery.cpp +++ b/keba/kebadiscovery.cpp @@ -113,6 +113,7 @@ void KebaDiscovery::startDiscovery() connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &KebaDiscovery::sendReportRequest); // Check what might be left on finished + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ qCDebug(dcKeba()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices"; m_networkDeviceInfos = discoveryReply->networkDeviceInfos(); diff --git a/meross/integrationpluginmeross.cpp b/meross/integrationpluginmeross.cpp index c52dad04..bb6ff9d8 100644 --- a/meross/integrationpluginmeross.cpp +++ b/meross/integrationpluginmeross.cpp @@ -55,7 +55,8 @@ IntegrationPluginMeross::~IntegrationPluginMeross() void IntegrationPluginMeross::discoverThings(ThingDiscoveryInfo *info) { NetworkDeviceDiscoveryReply *reply = hardwareManager()->networkDeviceDiscovery()->discover(); - connect(reply, &NetworkDeviceDiscoveryReply::finished, info, [info, reply, this](){ + connect(reply, &NetworkDeviceDiscoveryReply::finished, reply, &NetworkDeviceDiscoveryReply::deleteLater); + connect(reply, &NetworkDeviceDiscoveryReply::finished, info, [info, reply, this](){ foreach (const NetworkDeviceInfo &deviceInfo, reply->networkDeviceInfos()) { qCDebug(dcMeross) << "Discovery result" << deviceInfo; if (deviceInfo.hostName().toLower().startsWith("meross_smart_plug") || deviceInfo.macAddressManufacturer().toLower().contains("meross")) { diff --git a/networkdetector/integrationpluginnetworkdetector.cpp b/networkdetector/integrationpluginnetworkdetector.cpp index eb515dc1..447a8431 100644 --- a/networkdetector/integrationpluginnetworkdetector.cpp +++ b/networkdetector/integrationpluginnetworkdetector.cpp @@ -69,6 +69,7 @@ void IntegrationPluginNetworkDetector::discoverThings(ThingDiscoveryInfo *info) qCDebug(dcNetworkDetector()) << "-->" << networkDeviceInfo; }); + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, info, [=](){ ThingDescriptors descriptors; qCDebug(dcNetworkDetector()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; diff --git a/sma/speedwirediscovery.cpp b/sma/speedwirediscovery.cpp index 4fde8409..42a1dd01 100644 --- a/sma/speedwirediscovery.cpp +++ b/sma/speedwirediscovery.cpp @@ -126,6 +126,7 @@ bool SpeedwireDiscovery::startDiscovery() qCDebug(dcSma()) << "SpeedwireDiscovery: Start discovering network..."; NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover(); + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ qCDebug(dcSma()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices"; m_networkDeviceInfos = discoveryReply->networkDeviceInfos(); diff --git a/sma/sunnywebboxdiscovery.cpp b/sma/sunnywebboxdiscovery.cpp index 0a3988af..f9a1f76f 100644 --- a/sma/sunnywebboxdiscovery.cpp +++ b/sma/sunnywebboxdiscovery.cpp @@ -54,11 +54,6 @@ void SunnyWebBoxDiscovery::startDiscovery() qCInfo(dcSma()) << "Discovery: SunnyWebBox: Starting network discovery..."; m_discoveryReply = m_networkDeviceDiscovery->discover(); - // Check all network device infos which might already be discovered here to save time... - foreach (const NetworkDeviceInfo &networkDeviceInfo, m_discoveryReply->networkDeviceInfos()) { - checkNetworkDevice(networkDeviceInfo); - } - // Test any network device beeing discovered connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &SunnyWebBoxDiscovery::checkNetworkDevice); @@ -66,6 +61,7 @@ void SunnyWebBoxDiscovery::startDiscovery() connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ // The network device discovery is done m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos(); + m_discoveryReply->deleteLater(); m_discoveryReply = nullptr; // Check if all network device infos have been verified diff --git a/wakeonlan/integrationpluginwakeonlan.cpp b/wakeonlan/integrationpluginwakeonlan.cpp index f4b1bf0b..91955cef 100644 --- a/wakeonlan/integrationpluginwakeonlan.cpp +++ b/wakeonlan/integrationpluginwakeonlan.cpp @@ -53,6 +53,7 @@ void IntegrationPluginWakeOnLan::discoverThings(ThingDiscoveryInfo *info) qCDebug(dcWakeOnLan()) << "Starting network discovery..."; NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover(); + connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater); connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){ ThingDescriptors descriptors; qCDebug(dcWakeOnLan()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";