]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: htx: Add function htx_get_max_blksz()
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 16 May 2019 09:16:39 +0000 (11:16 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 28 May 2019 05:42:12 +0000 (07:42 +0200)
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

index 8875f65498a1d5aec063e65514c7a8fb0ffa01ad..55d493131a7b14a42901ac85d17bce1ed0ddb263 100644 (file)
@@ -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 <max> bytes. <max> 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)
 {