aboutsummaryrefslogtreecommitdiff
path: root/src/serialize.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialize.c')
-rw-r--r--src/serialize.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/src/serialize.c b/src/serialize.c
index 1fa9c8b..a4e4803 100644
--- a/src/serialize.c
+++ b/src/serialize.c
@@ -1,21 +1,22 @@
#include "serialize.h"
-#include "stringbuf.h"
#include "packet.h"
#include "stream_mqtt.h"
#include "log.h"
+#include <bstrlib/bstrlib.h>
+
#include <stdlib.h>
#include <assert.h>
typedef int (*MqttPacketSerializeFunc)(const MqttPacket *packet,
Stream *stream);
-static const StringBuf MqttProtocolId = StaticStringBuf("MQTT");
+static const struct tagbstring MqttProtocolId = bsStatic("MQTT");
static const char MqttProtocolLevel = 0x04;
-static inline size_t MqttStringLengthSerialized(const StringBuf *s)
+static inline size_t MqttStringLengthSerialized(const_bstring s)
{
- return 2 + s->len;
+ return 2 + blength(s);
}
static size_t MqttPacketConnectGetRemainingLength(const MqttPacketConnect *packet)
@@ -24,36 +25,36 @@ static size_t MqttPacketConnectGetRemainingLength(const MqttPacketConnect *packe
remainingLength += MqttStringLengthSerialized(&MqttProtocolId) + 1 + 1 + 2;
- remainingLength += MqttStringLengthSerialized(&packet->clientId);
+ remainingLength += MqttStringLengthSerialized(packet->clientId);
if (packet->connectFlags & 0x80)
- remainingLength += MqttStringLengthSerialized(&packet->userName);
+ remainingLength += MqttStringLengthSerialized(packet->userName);
if (packet->connectFlags & 0x40)
- remainingLength += MqttStringLengthSerialized(&packet->password);
+ remainingLength += MqttStringLengthSerialized(packet->password);
if (packet->connectFlags & 0x04)
- remainingLength += MqttStringLengthSerialized(&packet->willTopic) +
- MqttStringLengthSerialized(&packet->willMessage);
+ remainingLength += MqttStringLengthSerialized(packet->willTopic) +
+ MqttStringLengthSerialized(packet->willMessage);
return remainingLength;
}
static size_t MqttPacketSubscribeGetRemainingLength(const MqttPacketSubscribe *packet)
{
- return 2 + MqttStringLengthSerialized(&packet->topicFilter) + 1;
+ return 2 + MqttStringLengthSerialized(packet->topicFilter) + 1;
}
static size_t MqttPacketUnsubscribeGetRemainingLength(const MqttPacketUnsubscribe *packet)
{
- return 2 + MqttStringLengthSerialized(&packet->topicFilter);
+ return 2 + MqttStringLengthSerialized(packet->topicFilter);
}
static size_t MqttPacketPublishGetRemainingLength(const MqttPacketPublish *packet)
{
size_t remainingLength = 0;
- remainingLength += MqttStringLengthSerialized(&packet->topicName);
+ remainingLength += MqttStringLengthSerialized(packet->topicName);
/* Packet id */
if (MqttPacketPublishQos(packet) == 1 || MqttPacketPublishQos(packet) == 2)
@@ -61,7 +62,7 @@ static size_t MqttPacketPublishGetRemainingLength(const MqttPacketPublish *packe
remainingLength += 2;
}
- remainingLength += packet->message.len;
+ remainingLength += blength(packet->message);
return remainingLength;
}
@@ -155,7 +156,7 @@ static int MqttPacketConnectSerialize(const MqttPacketConnect *packet, Stream *s
if (MqttPacketBaseSerialize(&packet->base, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&MqttProtocolId, stream) == -1)
+ if (StreamWriteMqttString(&MqttProtocolId, stream) == -1)
return -1;
if (StreamWrite(&MqttProtocolLevel, 1, stream) != 1)
@@ -167,27 +168,27 @@ static int MqttPacketConnectSerialize(const MqttPacketConnect *packet, Stream *s
if (StreamWriteUint16Be(packet->keepAlive, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&packet->clientId, stream) == -1)
+ if (StreamWriteMqttString(packet->clientId, stream) == -1)
return -1;
if (packet->connectFlags & 0x04)
{
- if (StreamWriteMqttStringBuf(&packet->willTopic, stream) == -1)
+ if (StreamWriteMqttString(packet->willTopic, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&packet->willMessage, stream) == -1)
+ if (StreamWriteMqttString(packet->willMessage, stream) == -1)
return -1;
}
if (packet->connectFlags & 0x80)
{
- if (StreamWriteMqttStringBuf(&packet->userName, stream) == -1)
+ if (StreamWriteMqttString(packet->userName, stream) == -1)
return -1;
}
if (packet->connectFlags & 0x40)
{
- if (StreamWriteMqttStringBuf(&packet->password, stream) == -1)
+ if (StreamWriteMqttString(packet->password, stream) == -1)
return -1;
}
@@ -199,7 +200,7 @@ static int MqttPacketSubscribeSerialize(const MqttPacketSubscribe *packet, Strea
if (MqttPacketWithIdSerialize((const MqttPacket *) packet, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&packet->topicFilter, stream) == -1)
+ if (StreamWriteMqttString(packet->topicFilter, stream) == -1)
return -1;
if (StreamWrite(&packet->qos, 1, stream) == -1)
@@ -213,7 +214,7 @@ static int MqttPacketUnsubscribeSerialize(const MqttPacketUnsubscribe *packet, S
if (MqttPacketWithIdSerialize((const MqttPacket *) packet, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&packet->topicFilter, stream) == -1)
+ if (StreamWriteMqttString(packet->topicFilter, stream) == -1)
return -1;
return 0;
@@ -224,7 +225,7 @@ static int MqttPacketPublishSerialize(const MqttPacketPublish *packet, Stream *s
if (MqttPacketBaseSerialize((const MqttPacket *) packet, stream) == -1)
return -1;
- if (StreamWriteMqttStringBuf(&packet->topicName, stream) == -1)
+ if (StreamWriteMqttString(packet->topicName, stream) == -1)
return -1;
LOG_DEBUG("qos:%d", MqttPacketPublishQos(packet));
@@ -235,7 +236,7 @@ static int MqttPacketPublishSerialize(const MqttPacketPublish *packet, Stream *s
return -1;
}
- if (StreamWrite(packet->message.data, packet->message.len, stream) == -1)
+ if (StreamWrite(bdata(packet->message), blength(packet->message), stream) == -1)
return -1;
return 0;