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().
void *p[4];
} act; /* generic pointers to be used by custom 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 {
if (!rule)
return NULL;
rule->from = from;
+ rule->conf.file = file ? strdup(file) : NULL;
+ rule->conf.line = linenum;
return rule;
}
free_acl_cond(rule->cond);
if (rule->release_ptr)
rule->release_ptr(rule);
+ free(rule->conf.file);
free(rule);
}
}
struct act_rule rule = {
.arg.vars.scope = SCOPE_PROC,
.from = ACT_F_CFG_PARSER,
+ .conf.file = (char *)file,
+ .conf.line = line,
};
enum obj_type objt = OBJ_TYPE_NONE;
struct session *sess = NULL;
struct act_rule rule = {
.arg.vars.scope = SCOPE_PROC,
.from = ACT_F_CLI_PARSER,
+ .conf.file = "CLI",
+ .conf.line = 0,
};
enum obj_type objt = OBJ_TYPE_NONE;
struct session *sess = NULL;