From: Remi Tricot-Le Breton Date: Wed, 23 Dec 2020 17:13:48 +0000 (+0100) Subject: MINOR: http: Add helper functions to trim spaces and tabs X-Git-Tag: v2.4-dev5~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56e46cb393a5d39081e8e26fbb765cf7592736be;p=thirdparty%2Fhaproxy.git MINOR: http: Add helper functions to trim spaces and tabs Add two helper functions that trim leading or trailing spaces and horizontal tabs from an ist string. --- diff --git a/include/haproxy/http.h b/include/haproxy/http.h index fb47abdd45..582a666471 100644 --- a/include/haproxy/http.h +++ b/include/haproxy/http.h @@ -59,6 +59,9 @@ int http_parse_status_val(const struct ist value, struct ist *status, struct ist int http_compare_etags(struct ist etag1, struct ist etag2); +struct ist http_trim_leading_spht(struct ist value); +struct ist http_trim_trailing_spht(struct ist value); + /* * Given a path string and its length, find the position of beginning of the * query string. Returns NULL if no query string is found in the path. diff --git a/src/http.c b/src/http.c index 22a5a14181..d331699568 100644 --- a/src/http.c +++ b/src/http.c @@ -1074,3 +1074,34 @@ int http_compare_etags(struct ist etag1, struct ist etag2) return isteq(etag1, etag2); } + + +/* + * Trim leading space or horizontal tab characters from string. + * Returns the trimmed string. + */ +struct ist http_trim_leading_spht(struct ist value) +{ + struct ist ret = value; + + while (ret.len && HTTP_IS_SPHT(ret.ptr[0])) { + ++ret.ptr; + --ret.len; + } + + return ret; +} + +/* + * Trim trailing space or horizontal tab characters from string. + * Returns the trimmed string. + */ +struct ist http_trim_trailing_spht(struct ist value) +{ + struct ist ret = value; + + while (ret.len && HTTP_IS_SPHT(ret.ptr[-1])) + --ret.len; + + return ret; +}