mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
MINOR: sample: add cut_crlf converter
This converter cuts a string on the first \r or \n found.
This commit is contained in:
parent
4ccc12fc41
commit
ea159d6130
@ -14036,6 +14036,11 @@ crc32c([<avalanche>])
|
|||||||
not be used for security purposes as a 32-bit hash is trivial to break. See
|
not be used for security purposes as a 32-bit hash is trivial to break. See
|
||||||
also "djb2", "sdbm", "wt6", "crc32" and the "hash-type" directive.
|
also "djb2", "sdbm", "wt6", "crc32" and the "hash-type" directive.
|
||||||
|
|
||||||
|
cut_crlf
|
||||||
|
Cuts the string representation of the input sample on the first carriage
|
||||||
|
return ('\r') or newline ('\n') character found. Only the string length is
|
||||||
|
updated.
|
||||||
|
|
||||||
da-csv-conv(<prop>[,<prop>*])
|
da-csv-conv(<prop>[,<prop>*])
|
||||||
Asks the DeviceAtlas converter to identify the User Agent string passed on
|
Asks the DeviceAtlas converter to identify the User Agent string passed on
|
||||||
input, and to emit a string made of the concatenation of the properties
|
input, and to emit a string made of the concatenation of the properties
|
||||||
|
18
src/sample.c
18
src/sample.c
@ -2979,6 +2979,21 @@ static int sample_conv_htonl(const struct arg *arg_p, struct sample *smp, void *
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
static int sample_conv_cut_crlf(const struct arg *arg_p, struct sample *smp, void *private)
|
||||||
|
{
|
||||||
|
char *p;
|
||||||
|
size_t l;
|
||||||
|
|
||||||
|
p = smp->data.u.str.area;
|
||||||
|
for (l = 0; l < smp->data.u.str.data; l++) {
|
||||||
|
if (*(p+l) == '\r' || *(p+l) == '\n')
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
smp->data.u.str.data = l;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* All supported sample fetch functions must be declared here */
|
/* All supported sample fetch functions must be declared here */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
@ -3447,7 +3462,8 @@ static struct sample_conv_kw_list sample_conv_kws = {ILH, {
|
|||||||
{ "mod", sample_conv_arith_mod, ARG1(1,STR), check_operator, SMP_T_SINT, SMP_T_SINT },
|
{ "mod", sample_conv_arith_mod, ARG1(1,STR), check_operator, SMP_T_SINT, SMP_T_SINT },
|
||||||
{ "neg", sample_conv_arith_neg, 0, NULL, SMP_T_SINT, SMP_T_SINT },
|
{ "neg", sample_conv_arith_neg, 0, NULL, SMP_T_SINT, SMP_T_SINT },
|
||||||
|
|
||||||
{ "htonl", sample_conv_htonl, 0, NULL, SMP_T_SINT, SMP_T_BIN },
|
{ "htonl", sample_conv_htonl, 0, NULL, SMP_T_SINT, SMP_T_BIN },
|
||||||
|
{ "cut_crlf", sample_conv_cut_crlf, 0, NULL, SMP_T_STR, SMP_T_STR },
|
||||||
{ NULL, NULL, 0, 0, 0 },
|
{ NULL, NULL, 0, 0, 0 },
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user