]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: buf: add b_add_ofs() to add a count to an absolute position
authorWilly Tarreau <w@1wt.eu>
Thu, 23 Feb 2023 08:52:42 +0000 (09:52 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 25 Mar 2024 17:34:19 +0000 (17:34 +0000)
This function is used to compute a new absolute buffer offset by adding a
length to an existing valid offset. It will check for wrapping.

include/haproxy/buf.h

index 59484684a58d7bd8bcc4556f19fd07f5cd765e32..b24ec7902e589f2042f6cda68a906df6f28f7b23 100644 (file)
@@ -91,6 +91,18 @@ static inline size_t b_full(const struct buffer *b)
        return !b_room(b);
 }
 
+/* b_add_ofs() : return new offset within buffer after applying wrapping. Only
+ * offsets resulting from initial positions added to counts within buffer size
+ * limits are handled.
+ */
+static inline size_t b_add_ofs(const struct buffer *b, size_t ofs, size_t count)
+{
+       ofs += count;
+       if (ofs >= b->size)
+               ofs -= b->size;
+       return ofs;
+}
+
 
 /* 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