mirror of
https://github.com/qt/qtmqtt.git
synced 2026-10-25 16:16:26 +00:00
Fix topic wildcard checks
A topic can have multiple '+' wildcards, but isValid was searching for the wrong wildcard at the second instance. Pick-to: 6.6 6.5 6.2 Change-Id: I83e3fa258ef01b26388c0e6fd8c17a0a140ab75a Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
This commit is contained in:
parent
95b38eafb5
commit
fb417c44dd
@ -173,7 +173,7 @@ bool QMqttTopicFilter::isValid() const
|
||||
|| (singleLevelPosition < size - 1 && d->filter.at(singleLevelPosition + 1) != QLatin1Char('/'))) {
|
||||
return false;
|
||||
}
|
||||
singleLevelPosition = d->filter.indexOf(QLatin1Char('#'), singleLevelPosition + 1);
|
||||
singleLevelPosition = d->filter.indexOf(QLatin1Char('+'), singleLevelPosition + 1);
|
||||
}
|
||||
|
||||
// Shared Subscription syntax
|
||||
|
||||
@ -47,6 +47,7 @@ void Tst_QMqttTopicFilter::checkValidity()
|
||||
QVERIFY(!QMqttTopicFilter("a+").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("+a").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("++").isValid());
|
||||
QVERIFY(!QMqttTopicFilter("a/+/b/++/c").isValid());
|
||||
|
||||
QVERIFY(!QMqttTopicFilter(QString(3, QChar(QChar::Null))).isValid());
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user