From: Remi Tricot-Le Breton Date: Wed, 28 Oct 2020 10:35:14 +0000 (+0100) Subject: MINOR: ist: Add a case insensitive istmatch function X-Git-Tag: v2.3-dev9~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb4582cf719bcf9facf4e9b459fd3a68a97fffbd;p=thirdparty%2Fhaproxy.git MINOR: ist: Add a case insensitive istmatch function Add a helper function that checks if a string starts with another string while ignoring case. --- diff --git a/include/import/ist.h b/include/import/ist.h index 08e2119382..4c8979b423 100644 --- a/include/import/ist.h +++ b/include/import/ist.h @@ -315,6 +315,26 @@ static inline int istmatch(const struct ist ist1, const struct ist ist2) return 1; } +/* returns non-zero if starts like , ignoring the case (empty strings do match) */ +static inline int istmatchi(const struct ist ist1, const struct ist ist2) +{ + struct ist l = ist1; + struct ist r = ist2; + + if (l.len < r.len) + return 0; + + while (r.len--) { + if (*l.ptr != *r.ptr && + ist_lc[(unsigned char)*l.ptr] != ist_lc[(unsigned char)*r.ptr]) + return 0; + + l.ptr++; + r.ptr++; + } + return 1; +} + /* returns non-zero if starts like on the first * characters (empty strings do match). */