From 6590736a9da8411b3f160e7eb7b49722db989944 Mon Sep 17 00:00:00 2001 From: Johannes Schriewer Date: Sat, 28 Jul 2018 17:58:20 +0200 Subject: [PATCH] Bugfix: Missing flags in publish message --- src/packet.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/packet.c b/src/packet.c index 8254432..b557bfa 100644 --- a/src/packet.c +++ b/src/packet.c @@ -353,6 +353,15 @@ Buffer *encode_publish(PublishPayload *payload) { Buffer *buffer = make_buffer_for_header(sz, PacketTypePublish); + // Flags in header + if (payload->retain) { + buffer->data[buffer->position - 2] |= 1; + } + buffer->data[buffer->position - 2] |= (payload->qos << 1); + if (payload->duplicate) { + buffer->data[buffer->position - 2] |= 8; + } + // Variable header utf8_string_encode(payload->topic, buffer); buffer->data[buffer->position++] = (payload->packet_id & 0xff00) >> 8;