MINOR: sample: add len converter

Add len converter that returns the length of a string
This commit is contained in:
Etienne Carriere 2017-12-13 13:41:34 +01:00 committed by Willy Tarreau
parent b78b80efe5
commit ed0d24ebed
2 changed files with 15 additions and 0 deletions

View File

@ -12941,6 +12941,11 @@ language(<value>[,<default>])
use_backend english if en
default_backend choose_your_language
len
Get the length of the string. This can only be placed after a string
sample fetch function or after a transformation keyword returning a string
type. The result is of type integer.
lower
Convert a string sample to lower case. This can only be placed after a string
sample fetch function or after a transformation keyword returning a string

View File

@ -1568,6 +1568,15 @@ static int sample_conv_djb2(const struct arg *arg_p, struct sample *smp, void *p
return 1;
}
static int sample_conv_strlen(const struct arg *arg_p, struct sample *smp, void *private)
{
int i = smp->data.u.str.len;
smp->data.u.sint = i;
smp->data.type = SMP_T_SINT;
return 1;
}
static int sample_conv_str2lower(const struct arg *arg_p, struct sample *smp, void *private)
{
int i;
@ -2787,6 +2796,7 @@ static struct sample_conv_kw_list sample_conv_kws = {ILH, {
{ "base64", sample_conv_bin2base64,0, NULL, SMP_T_BIN, SMP_T_STR },
{ "upper", sample_conv_str2upper, 0, NULL, SMP_T_STR, SMP_T_STR },
{ "lower", sample_conv_str2lower, 0, NULL, SMP_T_STR, SMP_T_STR },
{ "len", sample_conv_strlen, 0, NULL, SMP_T_STR, SMP_T_SINT },
{ "hex", sample_conv_bin2hex, 0, NULL, SMP_T_BIN, SMP_T_STR },
{ "hex2i", sample_conv_hex2int, 0, NULL, SMP_T_STR, SMP_T_SINT },
{ "ipmask", sample_conv_ipmask, ARG1(1,MSK4), NULL, SMP_T_IPV4, SMP_T_IPV4 },