From: Aurelien DARRAGON Date: Wed, 10 Jan 2024 13:00:15 +0000 (+0100) Subject: MINOR: sample: add type_to_smp() helper function X-Git-Tag: v3.0-dev4~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0cfcc64b79a8a2497f49e2fc22c65387963db088;p=thirdparty%2Fhaproxy.git MINOR: sample: add type_to_smp() helper function type_to_smp(type) does the reverse operation of smp_to_type[smp]: it takes a type name as input string and tries to return the corresponding SMP_T_* smp type or SMP_TYPES if not found. --- diff --git a/include/haproxy/sample.h b/include/haproxy/sample.h index 7e05e78400..e8694c656a 100644 --- a/include/haproxy/sample.h +++ b/include/haproxy/sample.h @@ -31,6 +31,7 @@ extern sample_cast_fct sample_casts[SMP_TYPES][SMP_TYPES]; extern const unsigned int fetch_cap[SMP_SRC_ENTRIES]; extern const char *smp_to_type[SMP_TYPES]; +int type_to_smp(const char *type); struct sample_expr *sample_parse_expr(char **str, int *idx, const char *file, int line, char **err, struct arg_list *al, char **endptr); int sample_parse_expr_cnv(char **str, int *idx, char **endptr, char **err_msg, struct arg_list *al, const char *file, int line, diff --git a/src/sample.c b/src/sample.c index a7b8a23a79..cbb959161b 100644 --- a/src/sample.c +++ b/src/sample.c @@ -61,6 +61,21 @@ const char *smp_to_type[SMP_TYPES] = { [SMP_T_METH] = "meth", }; +/* Returns SMP_T_* smp matching with name or SMP_TYPES if + * not found. + */ +int type_to_smp(const char *type) +{ + int it = 0; + + while (it < SMP_TYPES) { + if (!strcmp(type, smp_to_type[it])) + break; // found + it += 1; + } + return it; +} + /* static sample used in sample_process() when

is NULL */ static THREAD_LOCAL struct sample temp_smp;