diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-14 23:20:14 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-14 23:20:14 +0200 |
| commit | 9115992db53079ed8d6b37e2a0cd714fde98c789 (patch) | |
| tree | 6328eff994ce2d1a19fc7d4a19a902ab6747845e | |
| parent | b2cfc193e287a2ab4461a1da37ddcc499f1cac68 (diff) | |
| download | mqtt-9115992db53079ed8d6b37e2a0cd714fde98c789.tar.gz mqtt-9115992db53079ed8d6b37e2a0cd714fde98c789.zip | |
Free packets from outMessages and inMessages when freeing client
| -rw-r--r-- | src/client.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/client.c b/src/client.c index e7739ad..9002c0d 100644 --- a/src/client.c +++ b/src/client.c @@ -150,10 +150,25 @@ MqttClient *MqttClientNew(const char *clientId, int cleanSession) void MqttClientFree(MqttClient *client) { + MqttPacket *packet, *next; + + TAILQ_FOREACH_SAFE(packet, &client->outMessages, messages, next) + { + TAILQ_REMOVE(&client->outMessages, packet, messages); + MqttPacketFree(packet); + } + + TAILQ_FOREACH_SAFE(packet, &client->inMessages, messages, next) + { + TAILQ_REMOVE(&client->inMessages, packet, messages); + MqttPacketFree(packet); + } + bdestroy(client->clientId); bdestroy(client->willTopic); bdestroy(client->willMessage); bdestroy(client->host); + free(client); } |
