aboutsummaryrefslogtreecommitdiff
path: root/src/stream_mqtt.c
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2017-02-14 23:06:09 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2017-02-14 23:06:09 +0200
commit26c4816e77692f51dfbb19fe3e73f082d1ace1a7 (patch)
treea3d350d3075fcd90311cb48c4b34661232953bcb /src/stream_mqtt.c
parentfab5726ffb1accc7ab4c8bbf64d8b43698b79b3c (diff)
downloadmqtt-26c4816e77692f51dfbb19fe3e73f082d1ace1a7.tar.gz
mqtt-26c4816e77692f51dfbb19fe3e73f082d1ace1a7.zip
Take bstrlib into use
I should've done this from the start. :-)
Diffstat (limited to 'src/stream_mqtt.c')
-rw-r--r--src/stream_mqtt.c51
1 files changed, 14 insertions, 37 deletions
diff --git a/src/stream_mqtt.c b/src/stream_mqtt.c
index 25d2e56..c9d0e12 100644
--- a/src/stream_mqtt.c
+++ b/src/stream_mqtt.c
@@ -1,65 +1,42 @@
#include "stream_mqtt.h"
-#include "stringbuf.h"
#include <string.h>
-int64_t StreamReadMqttString(char **s, size_t *len, Stream *stream)
-{
- StringBuf buf;
- int64_t rv;
-
- if ((rv = StreamReadMqttStringBuf(&buf, stream)) == -1)
- return -1;
-
- *s = buf.data;
- *len = buf.len;
-
- return rv;
-}
-
-int64_t StreamWriteMqttString(const char *s, int len, Stream *stream)
-{
- StringBuf buf;
-
- if (len < 0)
- len = strlen(s);
-
- buf.data = (char *) s;
- buf.len = len;
-
- return StreamWriteMqttStringBuf(&buf, stream);
-}
-
-int64_t StreamReadMqttStringBuf(struct StringBuf *buf, Stream *stream)
+int64_t StreamReadMqttString(bstring *buf, Stream *stream)
{
uint16_t len;
+ bstring result;
if (StreamReadUint16Be(&len, stream) == -1)
return -1;
- if (StringBufInit(buf, len) == -1)
+ result = bfromcstralloc(len, "");
+
+ if (!result)
return -1;
- if (StreamRead(buf->data, len, stream) == -1)
+ if (StreamRead(bdata(result), len, stream) == -1)
{
- StringBufDeinit(buf);
+ bdestroy(result);
return -1;
}
- buf->len = len;
+ result->slen = len;
+
+ *buf = result;
return len+2;
}
-int64_t StreamWriteMqttStringBuf(const struct StringBuf *buf, Stream *stream)
+int64_t StreamWriteMqttString(const_bstring buf, Stream *stream)
{
- if (StreamWriteUint16Be(buf->len, stream) == -1)
+ if (StreamWriteUint16Be(blength(buf), stream) == -1)
return -1;
- if (StreamWrite(buf->data, buf->len, stream) == -1)
+ if (StreamWrite(bdata(buf), blength(buf), stream) == -1)
return -1;
- return 2 + buf->len;
+ return 2 + blength(buf);
}
int64_t StreamReadRemainingLength(size_t *remainingLength, Stream *stream)