MINOR: vars: use the vars types as argument in place of opaque type
The (http|tcp)-(request|response) action rules use common
opaque type. For the HAProxy embbedded feature, types are know,
it better to add this types in the action union and use it.
diff --git a/src/vars.c b/src/vars.c
index 68f44bc..50fb36a 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -502,32 +502,32 @@
static int action_tcp_req_store(struct act_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
- return action_store(rule->arg.act.p[0], rule->arg.act.p[1],
- (long)rule->arg.act.p[2], px, s, SMP_OPT_DIR_REQ);
+ return action_store(rule->arg.vars.expr, rule->arg.vars.name,
+ rule->arg.vars.scope, px, s, SMP_OPT_DIR_REQ);
}
/* Wrapper for action_store */
static int action_tcp_res_store(struct act_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
- return action_store(rule->arg.act.p[0], rule->arg.act.p[1],
- (long)rule->arg.act.p[2], px, s, SMP_OPT_DIR_RES);
+ return action_store(rule->arg.vars.expr, rule->arg.vars.name,
+ rule->arg.vars.scope, px, s, SMP_OPT_DIR_RES);
}
/* Wrapper for action_store */
static int action_http_req_store(struct act_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
- return action_store(rule->arg.act.p[0], rule->arg.act.p[1],
- (long)rule->arg.act.p[2], px, s, SMP_OPT_DIR_REQ);
+ return action_store(rule->arg.vars.expr, rule->arg.vars.name,
+ rule->arg.vars.scope, px, s, SMP_OPT_DIR_REQ);
}
/* Wrapper for action_store */
static int action_http_res_store(struct act_rule *rule, struct proxy *px,
struct session *sess, struct stream *s)
{
- return action_store(rule->arg.act.p[0], rule->arg.act.p[1],
- (long)rule->arg.act.p[2], px, s, SMP_OPT_DIR_RES);
+ return action_store(rule->arg.vars.expr, rule->arg.vars.name,
+ rule->arg.vars.scope, px, s, SMP_OPT_DIR_RES);
}
/* This two function checks the variable name and replace the
@@ -560,7 +560,7 @@
*/
static int parse_vars(const char **args, int *arg, struct proxy *px,
int flags, char **err, struct sample_expr **expr,
- char **name, enum vars_scope *scope)
+ const char **name, enum vars_scope *scope)
{
const char *var_name = args[*arg-1];
int var_len;
@@ -606,9 +606,9 @@
struct act_rule *rule, char **err)
{
if (!parse_vars(args, arg, px, SMP_VAL_FE_REQ_CNT, err,
- (struct sample_expr **)&rule->arg.act.p[0],
- (char **)&rule->arg.act.p[1],
- (enum vars_scope *)&rule->arg.act.p[2]))
+ &rule->arg.vars.expr,
+ &rule->arg.vars.name,
+ &rule->arg.vars.scope))
return 0;
rule->action = TCP_ACT_CUSTOM_CONT;
rule->action_ptr = action_tcp_req_store;
@@ -620,9 +620,9 @@
struct act_rule *rule, char **err)
{
if (!parse_vars(args, arg, px, SMP_VAL_BE_RES_CNT, err,
- (struct sample_expr **)&rule->arg.act.p[0],
- (char **)&rule->arg.act.p[1],
- (enum vars_scope *)&rule->arg.act.p[2]))
+ &rule->arg.vars.expr,
+ &rule->arg.vars.name,
+ &rule->arg.vars.scope))
return 0;
rule->action = TCP_ACT_CUSTOM_CONT;
rule->action_ptr = action_tcp_res_store;
@@ -634,9 +634,9 @@
struct act_rule *rule, char **err)
{
if (!parse_vars(args, arg, px, SMP_VAL_FE_HRQ_HDR, err,
- (struct sample_expr **)&rule->arg.act.p[0],
- (char **)&rule->arg.act.p[1],
- (enum vars_scope *)&rule->arg.act.p[2]))
+ &rule->arg.vars.expr,
+ &rule->arg.vars.name,
+ &rule->arg.vars.scope))
return -1;
rule->action = HTTP_REQ_ACT_CUSTOM_CONT;
rule->action_ptr = action_http_req_store;
@@ -648,9 +648,9 @@
struct act_rule *rule, char **err)
{
if (!parse_vars(args, arg, px, SMP_VAL_BE_HRS_HDR, err,
- (struct sample_expr **)&rule->arg.act.p[0],
- (char **)&rule->arg.act.p[1],
- (enum vars_scope *)&rule->arg.act.p[2]))
+ &rule->arg.vars.expr,
+ &rule->arg.vars.name,
+ &rule->arg.vars.scope))
return -1;
rule->action = HTTP_RES_ACT_CUSTOM_CONT;
rule->action_ptr = action_http_res_store;