MEDIUM: pattern: retrieve the sample type in the sample, not in the keyword description
We need the pattern fetchers and converters to correctly set the output type
so that they can be used by ACL fetchers. By using the sample type instead of
the keyword type, we also open the possibility to create some multi-type
pattern fetch methods later (eg: "src" being v4/v6). Right now the type in
the keyword is used to validate the configuration.
diff --git a/src/proto_http.c b/src/proto_http.c
index 4d504b0..933351a 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -8352,6 +8352,7 @@
{
struct http_txn *txn = l7;
+ smp->type = SMP_T_CSTR;
return http_get_hdr(&txn->req, arg_p->data.str.str, arg_p->data.str.len, &txn->hdr_idx,
-1, NULL, &smp->data.str.str, &smp->data.str.len);
}
@@ -8455,6 +8456,7 @@
&url_param_value, &url_param_value_l))
return 0;
+ smp->type = SMP_T_CSTR;
smp->data.str.str = url_param_value;
smp->data.str.len = url_param_value_l;
return 1;
@@ -8508,6 +8510,7 @@
arg_p->data.str.str, arg_p->data.str.len, 1,
&cookie_value, &cookie_value_l);
if (found) {
+ smp->type = SMP_T_CSTR;
smp->data.str.str = cookie_value;
smp->data.str.len = cookie_value_l;
}
@@ -8530,6 +8533,7 @@
arg_p->data.str.str, arg_p->data.str.len, 1,
&cookie_value, &cookie_value_l);
if (found) {
+ smp->type = SMP_T_CSTR;
smp->data.str.str = cookie_value;
smp->data.str.len = cookie_value_l;
}