MINOR: rules: add a file name and line number to act_rules
These ones are passed on rule creation for the sole purpose of being reported in "show sess", which is not done yet. For now the entries are allocated upon rule creation and freed in free_act_rules().
This commit is contained in:
parent
d535f807bb
commit
c9e4868510
|
@ -186,6 +186,10 @@ struct act_rule {
|
||||||
void *p[4];
|
void *p[4];
|
||||||
} act; /* generic pointers to be used by custom actions */
|
} act; /* generic pointers to be used by custom actions */
|
||||||
} arg; /* arguments used by some actions */
|
} arg; /* arguments used by some actions */
|
||||||
|
struct {
|
||||||
|
char *file; /* file name where the rule appears (or NULL) */
|
||||||
|
int line; /* line number where the rule appears */
|
||||||
|
} conf;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct action_kw {
|
struct action_kw {
|
||||||
|
|
|
@ -297,6 +297,8 @@ struct act_rule *new_act_rule(enum act_from from, const char *file, int linenum)
|
||||||
if (!rule)
|
if (!rule)
|
||||||
return NULL;
|
return NULL;
|
||||||
rule->from = from;
|
rule->from = from;
|
||||||
|
rule->conf.file = file ? strdup(file) : NULL;
|
||||||
|
rule->conf.line = linenum;
|
||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,6 +311,7 @@ void free_act_rules(struct list *rules)
|
||||||
free_acl_cond(rule->cond);
|
free_acl_cond(rule->cond);
|
||||||
if (rule->release_ptr)
|
if (rule->release_ptr)
|
||||||
rule->release_ptr(rule);
|
rule->release_ptr(rule);
|
||||||
|
free(rule->conf.file);
|
||||||
free(rule);
|
free(rule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -919,6 +919,8 @@ static int vars_parse_global_set_var(char **args, int section_type, struct proxy
|
||||||
struct act_rule rule = {
|
struct act_rule rule = {
|
||||||
.arg.vars.scope = SCOPE_PROC,
|
.arg.vars.scope = SCOPE_PROC,
|
||||||
.from = ACT_F_CFG_PARSER,
|
.from = ACT_F_CFG_PARSER,
|
||||||
|
.conf.file = (char *)file,
|
||||||
|
.conf.line = line,
|
||||||
};
|
};
|
||||||
enum obj_type objt = OBJ_TYPE_NONE;
|
enum obj_type objt = OBJ_TYPE_NONE;
|
||||||
struct session *sess = NULL;
|
struct session *sess = NULL;
|
||||||
|
@ -1038,6 +1040,8 @@ static int vars_parse_cli_set_var(char **args, char *payload, struct appctx *app
|
||||||
struct act_rule rule = {
|
struct act_rule rule = {
|
||||||
.arg.vars.scope = SCOPE_PROC,
|
.arg.vars.scope = SCOPE_PROC,
|
||||||
.from = ACT_F_CLI_PARSER,
|
.from = ACT_F_CLI_PARSER,
|
||||||
|
.conf.file = "CLI",
|
||||||
|
.conf.line = 0,
|
||||||
};
|
};
|
||||||
enum obj_type objt = OBJ_TYPE_NONE;
|
enum obj_type objt = OBJ_TYPE_NONE;
|
||||||
struct session *sess = NULL;
|
struct session *sess = NULL;
|
||||||
|
|
Loading…
Reference in New Issue