From 241e29ef9cf04918b7d7c267cc1c225b61d824f3 Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Thu, 5 Mar 2020 17:56:30 +0100 Subject: [PATCH] MINOR: ist: Add `IST_NULL` macro `IST_NULL` is equivalent to an `struct ist` with `.ptr = NULL` and `.len = 0`. --- include/common/ist.h | 5 ++++- src/hpack-dec.c | 4 ++-- src/http.c | 4 ++-- src/http_htx.c | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/common/ist.h b/include/common/ist.h index 0d8b457..a1d8218 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 a721fad..b4d8f0d 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 7525199..ec6b4a2 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 35bb056..8157eb5 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 { -- 1.7.10.4