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:
parent
d15c39fea3
commit
1954071191
@ -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)
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
|
||||
@ -44,6 +44,9 @@ void Tst_QMqttControlPacket::header()
|
||||
|
||||
packet.clear();
|
||||
QVERIFY(packet.header() == QMqttControlPacket::UNKNOWN);
|
||||
|
||||
packet.setHeader(42);
|
||||
QVERIFY(packet.header() == QMqttControlPacket::UNKNOWN);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user