summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-15 03:02:22 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-15 03:02:22 +0200
commit0ae5b5dcaef6c721917552721aa3af6e065f9060 (patch)
treed06c91ccd1c55da0e9808fc75353a178a2e4086e
parentb3ee3a0fe18e8d101a4c58fa17764ae8c9aa9268 (diff)
parentccd80bb35be42c6278de20d1b7942c0af0dc993f (diff)
Merge remote-tracking branch 'origin/5.12' into dev
-rw-r--r--dist/changes-5.11.225
-rw-r--r--src/mqtt/qmqttauthenticationproperties.h2
-rw-r--r--src/mqtt/qmqttclient.h12
-rw-r--r--src/mqtt/qmqttconnection.cpp13
-rw-r--r--src/mqtt/qmqttconnectionproperties.h10
-rw-r--r--src/mqtt/qmqttpublishproperties.h3
-rw-r--r--src/mqtt/qmqttsubscription.cpp16
-rw-r--r--src/mqtt/qmqttsubscription.h14
-rw-r--r--src/mqtt/qmqttsubscription_p.h2
-rw-r--r--src/mqtt/qmqttsubscriptionproperties.h4
-rw-r--r--src/mqtt/qmqtttopicfilter.cpp2
-rw-r--r--src/mqtt/qmqtttopicfilter.h2
-rw-r--r--src/mqtt/qmqtttype.cpp8
-rw-r--r--src/mqtt/qmqtttype.h1
-rw-r--r--tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp16
15 files changed, 76 insertions, 54 deletions
diff --git a/dist/changes-5.11.2 b/dist/changes-5.11.2
new file mode 100644
index 0000000..d6c8fb3
--- /dev/null
+++ b/dist/changes-5.11.2
@@ -0,0 +1,25 @@
+Qt 5.11.2 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.11.0 through 5.11.1.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.11 series is binary compatible with the 5.10.x series.
+Applications compiled for 5.10 will continue to run with 5.11.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Qt 5.11.2 Changes *
+****************************************************************************
+
+ - [QTBUG-68343] Fixed CMake unit tests
+ - [QTBUG-68614] Fixed connection problems for manual secure transports
diff --git a/src/mqtt/qmqttauthenticationproperties.h b/src/mqtt/qmqttauthenticationproperties.h
index b587338..5025995 100644
--- a/src/mqtt/qmqttauthenticationproperties.h
+++ b/src/mqtt/qmqttauthenticationproperties.h
@@ -44,8 +44,6 @@ class QMqttAuthenticationPropertiesData;
class Q_MQTT_EXPORT QMqttAuthenticationProperties
{
- Q_GADGET
-
public:
QMqttAuthenticationProperties();
QMqttAuthenticationProperties(const QMqttAuthenticationProperties &);
diff --git a/src/mqtt/qmqttclient.h b/src/mqtt/qmqttclient.h
index 92e114b..438c075 100644
--- a/src/mqtt/qmqttclient.h
+++ b/src/mqtt/qmqttclient.h
@@ -161,20 +161,20 @@ Q_SIGNALS:
void pingResponseReceived();
void brokerSessionRestored();
- void hostnameChanged(QString hostname);
+ void hostnameChanged(const QString &hostname);
void portChanged(quint16 port);
- void clientIdChanged(QString clientId);
+ void clientIdChanged(const QString &clientId);
void keepAliveChanged(quint16 keepAlive);
void protocolVersionChanged(ProtocolVersion protocolVersion);
void stateChanged(ClientState state);
void errorChanged(ClientError error);
- void usernameChanged(QString username);
- void passwordChanged(QString password);
+ void usernameChanged(const QString &username);
+ void passwordChanged(const QString &password);
void cleanSessionChanged(bool cleanSession);
- void willTopicChanged(QString willTopic);
+ void willTopicChanged(const QString &willTopic);
void willQoSChanged(quint8 willQoS);
- void willMessageChanged(QByteArray willMessage);
+ void willMessageChanged(const QByteArray &willMessage);
void willRetainChanged(bool willRetain);
void authenticationRequested(const QMqttAuthenticationProperties &p);
diff --git a/src/mqtt/qmqttconnection.cpp b/src/mqtt/qmqttconnection.cpp
index fc0ac13..fc27a24 100644
--- a/src/mqtt/qmqttconnection.cpp
+++ b/src/mqtt/qmqttconnection.cpp
@@ -462,11 +462,12 @@ QMqttSubscription *QMqttConnection::sendControlSubscribe(const QMqttTopicFilter
qCDebug(lcMqttConnection) << Q_FUNC_INFO << " Topic:" << topic << " qos:" << qos;
if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0) {
- if (!topic.shareName().isEmpty()) {
+ if (!topic.sharedSubscriptionName().isEmpty()) {
const QMqttTopicFilter filter(topic.filter().section(QLatin1Char('/'), 2));
- if (m_activeSubscriptions.contains(filter) && m_activeSubscriptions.value(filter)->shareName() == topic.shareName())
+ if (m_activeSubscriptions.contains(filter)
+ && m_activeSubscriptions.value(filter)->sharedSubscriptionName() == topic.sharedSubscriptionName())
return m_activeSubscriptions[filter];
- } else if (m_activeSubscriptions.contains(topic) && !m_activeSubscriptions.value(topic)->isShared())
+ } else if (m_activeSubscriptions.contains(topic) && !m_activeSubscriptions.value(topic)->isSharedSubscription())
return m_activeSubscriptions[topic];
} else if (m_activeSubscriptions.contains(topic))
return m_activeSubscriptions[topic];
@@ -504,9 +505,9 @@ QMqttSubscription *QMqttConnection::sendControlSubscribe(const QMqttTopicFilter
result->setClient(m_clientPrivate->m_client);
result->setQos(qos);
result->setState(QMqttSubscription::SubscriptionPending);
- if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0 && !topic.shareName().isEmpty()) {
- result->setShareName(topic.shareName());
- result->setShared(true);
+ if (m_clientPrivate->m_protocolVersion == QMqttClient::MQTT_5_0 && !topic.sharedSubscriptionName().isEmpty()) {
+ result->setSharedSubscriptionName(topic.sharedSubscriptionName());
+ result->setSharedSubscription(true);
result->setTopic(topic.filter().section(QLatin1Char('/'), 2));
}
diff --git a/src/mqtt/qmqttconnectionproperties.h b/src/mqtt/qmqttconnectionproperties.h
index 8741f76..fb41853 100644
--- a/src/mqtt/qmqttconnectionproperties.h
+++ b/src/mqtt/qmqttconnectionproperties.h
@@ -44,7 +44,6 @@ class QMqttServerConnectionPropertiesData;
class Q_MQTT_EXPORT QMqttLastWillProperties
{
- Q_GADGET
public:
QMqttLastWillProperties();
QMqttLastWillProperties(const QMqttLastWillProperties &);
@@ -67,13 +66,12 @@ public:
void setCorrelationData(const QByteArray &correlation);
void setUserProperties(const QMqttUserProperties &properties);
-protected:
+private:
QSharedDataPointer<QMqttLastWillPropertiesData> data;
};
class Q_MQTT_EXPORT QMqttConnectionProperties
{
- Q_GADGET
public:
QMqttConnectionProperties();
QMqttConnectionProperties(const QMqttConnectionProperties &);
@@ -100,14 +98,14 @@ public:
void setAuthenticationMethod(const QString &authMethod);
void setAuthenticationData(const QByteArray &authData);
-protected:
+private:
+ friend class QMqttConnection;
QSharedDataPointer<QMqttConnectionPropertiesData> data;
};
class Q_MQTT_EXPORT QMqttServerConnectionProperties
: public QMqttConnectionProperties
{
- Q_GADGET
public:
enum ServerPropertyDetail : quint32 {
None = 0x00000000,
@@ -129,7 +127,6 @@ public:
AuthenticationMethod = 0x00010000,
AuthenticationData = 0x00020000
};
- Q_ENUM(ServerPropertyDetail)
Q_DECLARE_FLAGS(ServerPropertyDetails, ServerPropertyDetail)
QMqttServerConnectionProperties();
@@ -153,7 +150,6 @@ public:
QString responseInformation() const;
QString serverReference() const;
-
private:
friend class QMqttConnection;
QSharedDataPointer<QMqttServerConnectionPropertiesData> serverData;
diff --git a/src/mqtt/qmqttpublishproperties.h b/src/mqtt/qmqttpublishproperties.h
index a239b4d..1c62fc6 100644
--- a/src/mqtt/qmqttpublishproperties.h
+++ b/src/mqtt/qmqttpublishproperties.h
@@ -42,7 +42,6 @@ class QMqttMessageStatusPropertiesData;
class Q_MQTT_EXPORT QMqttPublishProperties
{
- Q_GADGET
public:
enum PublishPropertyDetail : quint32 {
None = 0x00000000,
@@ -55,7 +54,6 @@ public:
SubscriptionIdentifier = 0x00000040,
ContentType = 0x00000080
};
- Q_ENUM(PublishPropertyDetail)
Q_DECLARE_FLAGS(PublishPropertyDetails, PublishPropertyDetail)
QMqttPublishProperties();
@@ -96,7 +94,6 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QMqttPublishProperties::PublishPropertyDetails)
class Q_MQTT_EXPORT QMqttMessageStatusProperties
{
- Q_GADGET
public:
QMqttMessageStatusProperties();
QMqttMessageStatusProperties(const QMqttMessageStatusProperties &);
diff --git a/src/mqtt/qmqttsubscription.cpp b/src/mqtt/qmqttsubscription.cpp
index 35f3e52..2b526a9 100644
--- a/src/mqtt/qmqttsubscription.cpp
+++ b/src/mqtt/qmqttsubscription.cpp
@@ -105,13 +105,13 @@ QT_BEGIN_NAMESPACE
*/
/*!
- \property QMqttSubscription::shared
+ \property QMqttSubscription::sharedSubscription
\since 5.12
\brief This property holds whether the subscription is shared.
*/
/*!
- \property QMqttSubscription::shareName
+ \property QMqttSubscription::sharedSubscriptionName
\since 5.12
\brief This property holds the name of the shared subscription.
*/
@@ -177,16 +177,16 @@ QMqttUserProperties QMqttSubscription::userProperties() const
return d->m_userProperties;
}
-bool QMqttSubscription::isShared() const
+bool QMqttSubscription::isSharedSubscription() const
{
Q_D(const QMqttSubscription);
return d->m_shared;
}
-QString QMqttSubscription::shareName() const
+QString QMqttSubscription::sharedSubscriptionName() const
{
Q_D(const QMqttSubscription);
- return d->m_shareName;
+ return d->m_sharedSubscriptionName;
}
void QMqttSubscription::setState(QMqttSubscription::SubscriptionState state)
@@ -230,16 +230,16 @@ void QMqttSubscription::setQos(quint8 qos)
d->m_qos = qos;
}
-void QMqttSubscription::setShared(bool s)
+void QMqttSubscription::setSharedSubscription(bool s)
{
Q_D(QMqttSubscription);
d->m_shared = s;
}
-void QMqttSubscription::setShareName(const QString &name)
+void QMqttSubscription::setSharedSubscriptionName(const QString &name)
{
Q_D(QMqttSubscription);
- d->m_shareName = name;
+ d->m_sharedSubscriptionName = name;
}
QMqttSubscriptionPrivate::QMqttSubscriptionPrivate()
diff --git a/src/mqtt/qmqttsubscription.h b/src/mqtt/qmqttsubscription.h
index ad10d37..9f8d75f 100644
--- a/src/mqtt/qmqttsubscription.h
+++ b/src/mqtt/qmqttsubscription.h
@@ -50,8 +50,8 @@ class Q_MQTT_EXPORT QMqttSubscription : public QObject
Q_PROPERTY(QMqttTopicFilter topic READ topic)
Q_PROPERTY(QString reason READ reason)
Q_PROPERTY(QMqtt::ReasonCode reasonCode READ reasonCode)
- Q_PROPERTY(bool shared READ isShared)
- Q_PROPERTY(QString shareName READ shareName)
+ Q_PROPERTY(bool sharedSubscription READ isSharedSubscription)
+ Q_PROPERTY(QString sharedSubscriptionName READ sharedSubscriptionName)
public:
~QMqttSubscription() override;
enum SubscriptionState {
@@ -69,13 +69,13 @@ public:
QMqtt::ReasonCode reasonCode() const;
QMqttUserProperties userProperties() const;
- bool isShared() const;
- QString shareName() const;
+ bool isSharedSubscription() const;
+ QString sharedSubscriptionName() const;
Q_SIGNALS:
void stateChanged(SubscriptionState state);
void qosChanged(quint8); // only emitted when broker provides different QoS than requested
- void messageReceived(QMqttMessage msg);
+ void messageReceived(const QMqttMessage &msg);
public Q_SLOTS:
void unsubscribe();
@@ -87,8 +87,8 @@ private:
void setTopic(const QMqttTopicFilter &topic);
void setClient(QMqttClient *client);
void setQos(quint8 qos);
- void setShared(bool s);
- void setShareName(const QString &name);
+ void setSharedSubscription(bool s);
+ void setSharedSubscriptionName(const QString &name);
friend class QMqttConnection;
friend class QMqttClient;
explicit QMqttSubscription(QObject *parent = nullptr);
diff --git a/src/mqtt/qmqttsubscription_p.h b/src/mqtt/qmqttsubscription_p.h
index f56c404..7687e8a 100644
--- a/src/mqtt/qmqttsubscription_p.h
+++ b/src/mqtt/qmqttsubscription_p.h
@@ -56,7 +56,7 @@ public:
QMqttTopicFilter m_topic;
QString m_reasonString;
QMqttUserProperties m_userProperties;
- QString m_shareName;
+ QString m_sharedSubscriptionName;
QMqttSubscription::SubscriptionState m_state{QMqttSubscription::Unsubscribed};
QMqtt::ReasonCode m_reasonCode{QMqtt::ReasonCode::Success};
quint8 m_qos{0};
diff --git a/src/mqtt/qmqttsubscriptionproperties.h b/src/mqtt/qmqttsubscriptionproperties.h
index 3794609..b5a4864 100644
--- a/src/mqtt/qmqttsubscriptionproperties.h
+++ b/src/mqtt/qmqttsubscriptionproperties.h
@@ -45,8 +45,6 @@ class QMqttUnsubscriptionPropertiesData;
class Q_MQTT_EXPORT QMqttSubscriptionProperties
{
- Q_GADGET
-
public:
QMqttSubscriptionProperties();
QMqttSubscriptionProperties(const QMqttSubscriptionProperties &);
@@ -64,8 +62,6 @@ private:
class Q_MQTT_EXPORT QMqttUnsubscriptionProperties
{
- Q_GADGET
-
public:
QMqttUnsubscriptionProperties();
QMqttUnsubscriptionProperties(const QMqttUnsubscriptionProperties &);
diff --git a/src/mqtt/qmqtttopicfilter.cpp b/src/mqtt/qmqtttopicfilter.cpp
index 1e6bd9c..b96798f 100644
--- a/src/mqtt/qmqtttopicfilter.cpp
+++ b/src/mqtt/qmqtttopicfilter.cpp
@@ -160,7 +160,7 @@ void QMqttTopicFilter::setFilter(const QString &filter)
a shared subscription. The format of shared subscriptions is defined
as \c $share/sharename/topicfilter.
*/
-QString QMqttTopicFilter::shareName() const
+QString QMqttTopicFilter::sharedSubscriptionName() const
{
QString result;
if (d->filter.startsWith(QLatin1String("$share/"))) {
diff --git a/src/mqtt/qmqtttopicfilter.h b/src/mqtt/qmqtttopicfilter.h
index e926cf4..322f01e 100644
--- a/src/mqtt/qmqtttopicfilter.h
+++ b/src/mqtt/qmqtttopicfilter.h
@@ -69,7 +69,7 @@ public:
QString filter() const;
void setFilter(const QString &filter);
- QString shareName() const;
+ QString sharedSubscriptionName() const;
Q_REQUIRED_RESULT bool isValid() const;
Q_REQUIRED_RESULT bool match(const QMqttTopicName &name, MatchOptions matchOptions = NoMatchOption) const;
diff --git a/src/mqtt/qmqtttype.cpp b/src/mqtt/qmqtttype.cpp
index 373707b..51954f7 100644
--- a/src/mqtt/qmqtttype.cpp
+++ b/src/mqtt/qmqtttype.cpp
@@ -446,6 +446,14 @@ bool QMqttStringPair::operator==(const QMqttStringPair &other) const
return *data.constData() == *other.data.constData();
}
+/*!
+ Returns \c true if this instance does not match \a other.
+*/
+bool QMqttStringPair::operator!=(const QMqttStringPair &other) const
+{
+ return !operator==(other);
+}
+
QMqttStringPair &QMqttStringPair::operator=(const QMqttStringPair &rhs)
{
if (this != &rhs)
diff --git a/src/mqtt/qmqtttype.h b/src/mqtt/qmqtttype.h
index d791d63..6197875 100644
--- a/src/mqtt/qmqtttype.h
+++ b/src/mqtt/qmqtttype.h
@@ -56,6 +56,7 @@ public:
void setValue(const QString &v);
bool operator==(const QMqttStringPair &other) const;
+ bool operator!=(const QMqttStringPair &other) const;
QMqttStringPair &operator=(const QMqttStringPair &);
private:
QSharedDataPointer<QMqttStringPairData> data;
diff --git a/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp b/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp
index 78bb05c..3391792 100644
--- a/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp
+++ b/tests/auto/qmqttsubscription/tst_qmqttsubscription.cpp
@@ -265,8 +265,8 @@ void Tst_QMqttSubscription::sharedConnection()
// listenerAx: $share/groupA/Qt/Subscription/shared_check/#
for (int i = 0; i < groupSizeA; ++i) {
createAndSubscribe(&listenersA[i], &subsA[i], groupTopicA);
- QCOMPARE(subsA[i]->isShared(), true);
- QCOMPARE(subsA[i]->shareName(), QLatin1String("groupA"));
+ QCOMPARE(subsA[i]->isSharedSubscription(), true);
+ QCOMPARE(subsA[i]->sharedSubscriptionName(), QLatin1String("groupA"));
connect(subsA[i], &QMqttSubscription::messageReceived, [i, &messageCounterA, &messageSumA]() {
messageCounterA[i]++;
messageSumA++;
@@ -284,8 +284,8 @@ void Tst_QMqttSubscription::sharedConnection()
// listenerBx: $share/groupB/Qt/Subscription/shared_check/#
for (int i = 0; i < groupSizeB; ++i) {
createAndSubscribe(&listenersB[i], &subsB[i], groupTopicB);
- QCOMPARE(subsB[i]->isShared(), true);
- QCOMPARE(subsB[i]->shareName(), QLatin1String("groupB"));
+ QCOMPARE(subsB[i]->isSharedSubscription(), true);
+ QCOMPARE(subsB[i]->sharedSubscriptionName(), QLatin1String("groupB"));
connect(subsB[i], &QMqttSubscription::messageReceived, [i, &messageCounterB, &messageSumB]() {
messageCounterB[i]++;
messageSumB++;
@@ -351,12 +351,12 @@ void Tst_QMqttSubscription::sharedNonShared()
QTRY_VERIFY2(client.state() == QMqttClient::Connected, "Could not connect to broker.");
QMqttSubscription *sub1 = client.subscribe(topic1, 1);
- QCOMPARE(sub1->isShared(), shared1);
- QVERIFY(sub1->shareName().isEmpty() == !shared1);
+ QCOMPARE(sub1->isSharedSubscription(), shared1);
+ QVERIFY(sub1->sharedSubscriptionName().isEmpty() == !shared1);
QMqttSubscription *sub2 = client.subscribe(topic2, 1);
- QCOMPARE(sub2->isShared(), shared2);
- QVERIFY(sub2->shareName().isEmpty() == !shared2);
+ QCOMPARE(sub2->isSharedSubscription(), shared2);
+ QVERIFY(sub2->sharedSubscriptionName().isEmpty() == !shared2);
// Verify that a subscription is reused / not reused
QCOMPARE(sub1 == sub2, expected);