Willy,

I was thinking about adding a `BUG_ON(ist.ptr == NULL && ist.len != 0)`, but
assumed that you would dislike that. Add it yourself if you feel like it.

Best regards
Tim Düsterhus

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

-- >8 --
`isttest` returns whether the `.ptr` is non-null.
---
 include/common/ist.h | 6 ++++++
 src/http_ana.c       | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/common/ist.h b/include/common/ist.h
index a1d82182b..aa25a1f5c 100644
--- a/include/common/ist.h
+++ b/include/common/ist.h
@@ -186,6 +186,12 @@ static inline struct ist ist2(const void *ptr, size_t len)
        return (struct ist){ .ptr = (char *)ptr, .len = len };
 }
 
+/* returns the result of `ist.ptr != NULL` */
+static inline int isttest(const struct ist ist)
+{
+       return ist.ptr != NULL;
+}
+
 /* This function MODIFIES the string to add a zero AFTER the end, and returns
  * the start pointer. The purpose is to use it on strings extracted by parsers
  * from larger strings cut with delimiters that are not important and can be
diff --git a/src/http_ana.c b/src/http_ana.c
index 094208d63..e268d4c95 100644
--- a/src/http_ana.c
+++ b/src/http_ana.c
@@ -2787,7 +2787,7 @@ int http_res_set_status(unsigned int status, struct ist 
reason, struct stream *s
        trash.data = res - trash.area;
 
        /* Do we have a custom reason format string? */
-       if (reason.ptr == NULL) {
+       if (!isttest(reason)) {
                const char *str = http_get_reason(status);
                reason = ist2(str, strlen(str));
        }
-- 
2.25.1


Reply via email to