diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-12 22:37:43 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-12 22:37:43 +0200 |
| commit | e398baa35c02b745bf65ae539797dee7230cfe3a (patch) | |
| tree | 423208b94b649a8c51ff1767c3015ffa069c10a3 /src | |
| parent | e9a30435c2e419f76b64d2976342a036537d9f50 (diff) | |
| download | mqtt-e398baa35c02b745bf65ae539797dee7230cfe3a.tar.gz mqtt-e398baa35c02b745bf65ae539797dee7230cfe3a.zip | |
Implement MqttPacketFree
Diffstat (limited to 'src')
| -rw-r--r-- | src/packet.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/packet.c b/src/packet.c index 1e05330..e50dc13 100644 --- a/src/packet.c +++ b/src/packet.c @@ -78,7 +78,32 @@ MqttPacket *MqttPacketWithIdNew(int type, uint16_t id) void MqttPacketFree(MqttPacket *packet) { - /* TODO: implement MqttPacketFree */ + if (MqttPacketType(packet) == MqttPacketTypeConnect) + { + MqttPacketConnect *p = (MqttPacketConnect *) packet; + StringBufDeinit(&p->clientId); + StringBufDeinit(&p->willTopic); + StringBufDeinit(&p->willMessage); + StringBufDeinit(&p->userName); + StringBufDeinit(&p->password); + } + else if (MqttPacketType(packet) == MqttPacketTypePublish) + { + MqttPacketPublish *p = (MqttPacketPublish *) packet; + StringBufDeinit(&p->topicName); + StringBufDeinit(&p->message); + } + else if (MqttPacketType(packet) == MqttPacketTypeSubscribe) + { + MqttPacketSubscribe *p = (MqttPacketSubscribe *) packet; + StringBufDeinit(&p->topicFilter); + } + else if (MqttPacketType(packet) == MqttPacketTypeUnsubscribe) + { + MqttPacketUnsubscribe *p = (MqttPacketUnsubscribe *) packet; + StringBufDeinit(&p->topicFilter); + } + free(packet); } int MqttPacketHasId(const MqttPacket *packet) |
