diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-14 23:06:09 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2017-02-14 23:06:09 +0200 |
| commit | 26c4816e77692f51dfbb19fe3e73f082d1ace1a7 (patch) | |
| tree | a3d350d3075fcd90311cb48c4b34661232953bcb /src/stream_mqtt.c | |
| parent | fab5726ffb1accc7ab4c8bbf64d8b43698b79b3c (diff) | |
| download | mqtt-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.c | 51 |
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) |
