]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: buf: add b_rel_ofs() to turn an absolute offset into a relative one
authorWilly Tarreau <w@1wt.eu>
Thu, 23 Feb 2023 08:52:58 +0000 (09:52 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 25 Mar 2024 17:34:19 +0000 (17:34 +0000)
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

index b24ec7902e589f2042f6cda68a906df6f28f7b23..d9f3a7727e39fbed93366618ba80c93d3eb1ed89 100644 (file)
@@ -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