From a78dd9c6eb65abf7916a092fe1807c63e6d1eb79 Mon Sep 17 00:00:00 2001 From: "git@daemon.de" Date: Wed, 12 Feb 2014 16:46:50 +0100 Subject: [PATCH] added buffer_get_remainder() so I can fetch whatever is left in the buffer --- include/pcp/buffer.h | 3 +++ libpcp/buffer.c | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/include/pcp/buffer.h b/include/pcp/buffer.h index 58b1a9a..52d6a8e 100644 --- a/include/pcp/buffer.h +++ b/include/pcp/buffer.h @@ -88,6 +88,9 @@ unsigned char *buffer_get(Buffer *b); points to b->buf and should not be free'd directly*/ char *buffer_get_str(Buffer *b); +/* fetch whatever is left in the buffer */ +unsigned char *buffer_get_remainder(Buffer *b); + /* same as buffer_get() but fetch some data chunk from somewhere in the middle of the buffer */ size_t buffer_extract(Buffer *b, void *buf, size_t offset, size_t len); diff --git a/libpcp/buffer.c b/libpcp/buffer.c index 3f2c01f..e8cba06 100644 --- a/libpcp/buffer.c +++ b/libpcp/buffer.c @@ -98,6 +98,16 @@ size_t buffer_get_chunk(Buffer *b, void *buf, size_t len) { return len; } +unsigned char *buffer_get_remainder(Buffer *b) { + void *buf; + if(buffer_get_chunk(b, buf, b->end - b->offset) == 0) { + return NULL; + } + else { + return buf; + } +} + uint8_t buffer_get8(Buffer *b) { uint8_t i; if(buffer_get_chunk(b, &i, 1) > 0) {