From c5004ccb3680847cf0fc42a2fd7afc9df32c64d5 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 23 Feb 2023 09:52:58 +0100 Subject: [PATCH] MINOR: buf: add b_rel_ofs() to turn an absolute offset into a relative one It basically does the opposite of b_peek_ofs(). If x=b_peek_ofs(y), then y=b_rel_ofs(x). --- include/haproxy/buf.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/haproxy/buf.h b/include/haproxy/buf.h index b24ec7902..d9f3a7727 100644 --- a/include/haproxy/buf.h +++ b/include/haproxy/buf.h @@ -103,6 +103,15 @@ static inline size_t b_add_ofs(const struct buffer *b, size_t ofs, size_t count) return ofs; } +/* b_rel_ofs() : take an absolute offset in the buffer, and return it relative + * to the buffer's head for use with b_peek(). + */ +static inline size_t b_rel_ofs(const struct buffer *b, size_t ofs) +{ + if (ofs < b->head) + ofs += b->size; + return ofs - b->head; +} /* b_stop() : returns the pointer to the byte following the end of the buffer, * which may be out of the buffer if the buffer ends on the last byte of the