From: Tim Duesterhus Date: Thu, 5 Mar 2020 16:56:30 +0000 (+0100) Subject: MINOR: ist: Add `IST_NULL` macro X-Git-Tag: v2.2-dev4~59 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=241e29ef9cf04918b7d7c267cc1c225b61d824f3;p=thirdparty%2Fhaproxy.git MINOR: ist: Add `IST_NULL` macro `IST_NULL` is equivalent to an `struct ist` with `.ptr = NULL` and `.len = 0`. --- diff --git a/include/common/ist.h b/include/common/ist.h index 0d8b457218..a1d82182bd 100644 --- a/include/common/ist.h +++ b/include/common/ist.h @@ -133,6 +133,9 @@ struct ist { /* makes a constant ist from a constant string, for use in array declarations */ #define IST(str) { .ptr = str "", .len = (sizeof str "") - 1 } +/* IST_NULL is equivalent to an `ist` with `.ptr = NULL` and `.len = 0` */ +#define IST_NULL ((const struct ist){ .ptr = 0, .len = 0 }) + /* makes an ist from a regular zero terminated string. Null has length 0. * Constants are detected and replaced with constant initializers. Other values * are measured by hand without strlen() as it's much cheaper and inlinable on @@ -705,7 +708,7 @@ static inline struct ist istist(const struct ist ist, const struct ist pat) } return ist2(ret.ptr - 1, ret.len + 1); } - return ist2(NULL, 0); + return IST_NULL; } /* diff --git a/src/hpack-dec.c b/src/hpack-dec.c index a721fadc46..b4d8f0d393 100644 --- a/src/hpack-dec.c +++ b/src/hpack-dec.c @@ -406,7 +406,7 @@ int hpack_decode_frame(struct hpack_dht *dht, const uint8_t *raw, uint32_t len, value = ist2(vtrash, vlen); } - name = ist2(NULL, 0); + name = IST_NULL; if (!must_index) name.len = hpack_idx_to_phdr(idx); @@ -458,7 +458,7 @@ int hpack_decode_frame(struct hpack_dht *dht, const uint8_t *raw, uint32_t len, } /* put an end marker */ - list[ret].n = list[ret].v = ist2(NULL, 0); + list[ret].n = list[ret].v = IST_NULL; ret++; leave: diff --git a/src/http.c b/src/http.c index 75251992a7..ec6b4a2826 100644 --- a/src/http.c +++ b/src/http.c @@ -551,7 +551,7 @@ struct ist http_get_authority(const struct ist uri, int no_userinfo) return ist2(start, end - start); not_found: - return ist2(NULL, 0); + return IST_NULL; } /* Parse the URI from the given transaction (which is assumed to be in request @@ -601,7 +601,7 @@ struct ist http_get_path(const struct ist uri) return ist2(ptr, end - ptr); not_found: - return ist2(NULL, 0); + return IST_NULL; } /* diff --git a/src/http_htx.c b/src/http_htx.c index 35bb056252..8157eb560b 100644 --- a/src/http_htx.c +++ b/src/http_htx.c @@ -533,7 +533,7 @@ int http_remove_header(struct htx *htx, struct http_hdr_ctx *ctx) blk = htx_remove_blk(htx, blk); if (blk || htx_is_empty(htx)) { ctx->blk = blk; - ctx->value = ist2(NULL, 0); + ctx->value = IST_NULL; ctx->lws_before = ctx->lws_after = 0; } else {