Willy,

I was hoping reduce the number of unmerged patches, but somehow you merged
three of seven and now I'm back at seven. I've also added remarks to some
of the other individual patches.

This whole series has been tested to compile and pass the reg-tests, but no
in-depth testing happened.

Best regards
Tim Düsterhus

Apply with `git am --scissors` to automatically cut the commit message.

-- >8 --
`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 0d8b45721..a1d82182b 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 a721fadc4..b4d8f0d39 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 75251992a..ec6b4a282 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 35bb05625..8157eb560 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 {
-- 
2.25.1


Reply via email to