From 789a4726746d62e8341dc13c6f8e32dd6158c425 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Wed, 2 Dec 2020 17:40:54 +0100 Subject: [PATCH] MINOR: htx: Add a function to know if a block is the only one in a message The htx_is_unique_blk() function may now be used to know if a block is the only one in an HTX message, excluding all unused blocks. Note the purpose of this function is not to know if a block is the last one of an HTTP message. This means no more data part from the message are expected, except tunneled data. It only says if a block is alone in an HTX message. --- include/haproxy/htx.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/haproxy/htx.h b/include/haproxy/htx.h index 31bbcd9..7cc5ffe 100644 --- a/include/haproxy/htx.h +++ b/include/haproxy/htx.h @@ -307,6 +307,16 @@ static inline struct htx_blk *htx_get_next_blk(const struct htx *htx, return ((pos == -1) ? NULL : htx_get_blk(htx, pos)); } +/* Returns 1 if is the block is the only one inside the HTX message , + * excluding all unsued blocks. Otherwise, it returns 0. If 1 is returned, this + * means that there is only and eventually some unused ones in . + */ +static inline int htx_is_unique_blk(const struct htx *htx, + const struct htx_blk *blk) +{ + return (htx_get_blksz(blk) == htx->data); +} + /* Changes the size of the value. It is the caller responsibility to change the * value itself, make sure there is enough space and update allocated * value. This function updates the HTX message accordingly. -- 1.7.10.4