From 2ae35045e2910074ad1c540efd3b70afe4407ae9 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Thu, 16 May 2019 11:16:39 +0200 Subject: [PATCH] MINOR: htx: Add function htx_get_max_blksz() This functions should be used to get the maximum size for a block, not exceeding the max amount of bytes passed in argument. Thus max may be set to -1 to have no limit. --- include/common/htx.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/common/htx.h b/include/common/htx.h index 8875f6549..55d493131 100644 --- a/include/common/htx.h +++ b/include/common/htx.h @@ -687,6 +687,20 @@ static inline uint32_t htx_free_data_space(const struct htx *htx) return (free - sizeof(htx->blocks[0])); } +/* Returns the maximum size for a block, not exceeding bytes. may be + * set to -1 to have no limit. + */ +static inline uint32_t htx_get_max_blksz(const struct htx *htx, int32_t max) +{ + uint32_t free = htx_free_space(htx); + + if (max != -1 && free > max) + free = max; + if (free < sizeof(htx->blocks[0])) + return 0; + return (free - sizeof(htx->blocks[0])); +} + /* Returns 1 if the message has less than 1/4 of its capacity free, otherwise 0 */ static inline int htx_almost_full(const struct htx *htx) {