From 29f104d8e0b46595d8e7a5d315a9ec3afdf26d43 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Thu, 27 Jul 2017 20:21:38 +0000 Subject: Add unixmessage_receiver_hasmsginbuf, fix unixmessage_handle --- .../unixmessage_receiver_hasmsginbuf.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/libunixonacid/unixmessage_receiver_hasmsginbuf.c (limited to 'src/libunixonacid/unixmessage_receiver_hasmsginbuf.c') diff --git a/src/libunixonacid/unixmessage_receiver_hasmsginbuf.c b/src/libunixonacid/unixmessage_receiver_hasmsginbuf.c new file mode 100644 index 0000000..0a5f7d2 --- /dev/null +++ b/src/libunixonacid/unixmessage_receiver_hasmsginbuf.c @@ -0,0 +1,21 @@ +/* ISC license. */ + +#include +#include +#include +#include +#include +#include + +int unixmessage_receiver_hasmsginbuf (unixmessage_receiver_t const *b) +{ + size_t len = cbuffer_len(&b->mainb) ; + uint32_t mainlen ; + char pack[4] ; + struct iovec v[2] ; + if (len < 6) return 0 ; + cbuffer_rpeek(&b->mainb, v) ; + siovec_gather(v, 2, pack, 4) ; + uint32_unpack_big(pack, &mainlen) ; + return len - 6 >= mainlen ; +} -- cgit v1.2.3