From: Willy Tarreau Date: Thu, 3 Jan 2019 17:26:17 +0000 (+0100) Subject: MINOR: htx: add a new function to add a block without filling it X-Git-Tag: v2.0-dev1~278 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52610e905dd0c4e63373d817dc234f110d670a57;p=thirdparty%2Fhaproxy.git MINOR: htx: add a new function to add a block without filling it htx_add_blk_type_size() creates a block of a specified type and size and returns it. The caller can then fill it. --- diff --git a/include/common/htx.h b/include/common/htx.h index 93031cd1fe..3385f14851 100644 --- a/include/common/htx.h +++ b/include/common/htx.h @@ -185,6 +185,7 @@ struct htx_blk *htx_replace_header(struct htx *htx, struct htx_blk *blk, const struct ist name, const struct ist value); struct htx_blk *htx_add_header(struct htx *htx, const struct ist name, const struct ist value); +struct htx_blk *htx_add_blk_type_size(struct htx *htx, enum htx_blk_type type, uint32_t blksz); struct htx_blk *htx_add_all_headers(struct htx *htx, const struct http_hdr *hdrs); struct htx_blk *htx_add_pseudo_header(struct htx *htx, enum htx_phdr_type phdr, const struct ist value); struct htx_blk *htx_add_endof(struct htx *htx, enum htx_blk_type type); diff --git a/src/htx.c b/src/htx.c index 83243e060d..af94643440 100644 --- a/src/htx.c +++ b/src/htx.c @@ -661,6 +661,22 @@ struct htx_blk *htx_add_header(struct htx *htx, const struct ist name, return blk; } +/* Adds an HTX block of type in , of size . It returns the + * new block on success. Otherwise, it returns NULL. The caller is responsible + * for filling the block itself. + */ +struct htx_blk *htx_add_blk_type_size(struct htx *htx, enum htx_blk_type type, uint32_t blksz) +{ + struct htx_blk *blk; + + blk = htx_add_blk(htx, type, blksz); + if (!blk) + return NULL; + + blk->info += blksz; + return blk; +} + struct htx_blk *htx_add_all_headers(struct htx *htx, const struct http_hdr *hdrs) { int i;