From: Christopher Faulet Date: Thu, 16 May 2019 09:16:39 +0000 (+0200) Subject: MINOR: htx: Add function htx_get_max_blksz() X-Git-Tag: v2.0-dev5~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2ae35045e2910074ad1c540efd3b70afe4407ae9;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/common/htx.h b/include/common/htx.h index 8875f65498..55d493131a 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) {