1
0
mirror of https://github.com/qt/qtmqtt.git synced 2026-10-25 16:16:26 +00:00

A packet header can only have valid command values

Introduce UNKNOWN for setting invalid ones to be able to more easily
check the state of a packet.
This commit is contained in:
Maurice Kalinowski 2017-01-24 12:45:50 +01:00
parent d15c39fea3
commit 1954071191
3 changed files with 10 additions and 3 deletions

View File

@ -56,7 +56,10 @@ void QMqttControlPacket::clear()
void QMqttControlPacket::setHeader(quint8 h)
{
m_header = h;
if (h < QMqttControlPacket::CONNECT || h > DISCONNECT || h & 0x0F)
m_header = QMqttControlPacket::UNKNOWN;
else
m_header = h;
}
void QMqttControlPacket::append(char value)

View File

@ -50,6 +50,7 @@ class Q_AUTOTEST_EXPORT QMqttControlPacket
{
public:
enum PacketType {
UNKNOWN = 0x00,
CONNECT = 0x10,
CONNACK = 0x20,
PUBLISH = 0x30,
@ -63,7 +64,7 @@ public:
UNSUBACK = 0xB0,
PINGREQ = 0xC0,
PINGRESP = 0xD0,
DISCONNECT = 0xE0
DISCONNECT = 0xE0,
};
QMqttControlPacket();
@ -82,7 +83,7 @@ public:
QByteArray serialize() const;
inline QByteArray payload() const { return m_payload; }
private:
quint8 m_header;
quint8 m_header{UNKNOWN};
QByteArray m_payload;
};

View File

@ -44,6 +44,9 @@ void Tst_QMqttControlPacket::header()
packet.clear();
QVERIFY(packet.header() == QMqttControlPacket::UNKNOWN);
packet.setHeader(42);
QVERIFY(packet.header() == QMqttControlPacket::UNKNOWN);
}
}