Fix mqtt items asserting on client instances

This commit is contained in:
Carl Philipp Klemm 2026-04-13 14:09:58 +02:00
parent b0792d32db
commit d69bfb58b9
4 changed files with 13 additions and 7 deletions

View file

@ -83,13 +83,17 @@ void MqttClient::unsubscribe(MqttClient::Subscription* subscription)
void MqttClient::unsubscribe(QString topic)
{
assert(!subscriptions.contains(topic));
MqttClient::Subscription* sub = subscriptions[topic];
if(!sub)
{
qWarning()<<"MqttClient: Trying to unsubscribe from unkown topic:"<<topic;
return;
}
if(--sub->ref > 0)
return;
qDebug()<<"MqttClient: unsubscibeing"<<sub->subscription->topic();
qDebug()<<"MqttClient: unsubscibeing"<<sub->subscription->topic().filter();
client->unsubscribe(sub->subscription->topic());
subscriptions.erase(topic);
delete sub;