From e398baa35c02b745bf65ae539797dee7230cfe3a Mon Sep 17 00:00:00 2001 From: Oskari Timperi Date: Sun, 12 Feb 2017 22:37:43 +0200 Subject: Implement MqttPacketFree --- src/packet.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3