From 91804f630cfe6ce783743c8bc9216132613e7975 Mon Sep 17 00:00:00 2001 From: Rafael Zalamena Date: Mon, 11 May 2020 11:41:23 -0300 Subject: lib: add new stream function to reorganize buffer The function was originally implemented for zebra data plane FPM plugin, but another code places could use it. Signed-off-by: Rafael Zalamena --- lib/stream.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/stream.c') diff --git a/lib/stream.c b/lib/stream.c index dc207c16a4..e4e37b7315 100644 --- a/lib/stream.c +++ b/lib/stream.c @@ -1372,3 +1372,19 @@ void stream_fifo_free(struct stream_fifo *fifo) stream_fifo_deinit(fifo); XFREE(MTYPE_STREAM_FIFO, fifo); } + +void stream_pulldown(struct stream *s) +{ + size_t rlen = STREAM_READABLE(s); + + /* No more data, so just move the pointers. */ + if (rlen == 0) { + stream_reset(s); + return; + } + + /* Move the available data to the beginning. */ + memmove(s->data, &s->data[s->getp], rlen); + s->getp = 0; + s->endp = rlen; +} -- cgit v1.2.3