mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: actions: Add a function pointer to release args used by actions
Arguments used by actions are never released during HAProxy deinit. Now, it is possible to specify a function to do so. ".release_ptr" field in the act_rule structure may be set during the configuration parsing to a specific deinit function depending on the action type.
This commit is contained in:
parent
95d169ba9a
commit
58b3564fde
@ -108,6 +108,7 @@ struct act_rule {
|
|||||||
enum act_return (*action_ptr)(struct act_rule *rule, struct proxy *px, /* ptr to custom action */
|
enum act_return (*action_ptr)(struct act_rule *rule, struct proxy *px, /* ptr to custom action */
|
||||||
struct session *sess, struct stream *s, int flags);
|
struct session *sess, struct stream *s, int flags);
|
||||||
int (*check_ptr)(struct act_rule *rule, struct proxy *px, char **err); /* ptr to check function */
|
int (*check_ptr)(struct act_rule *rule, struct proxy *px, char **err); /* ptr to check function */
|
||||||
|
void (*release_ptr)(struct act_rule *rule); /* ptr to release function */
|
||||||
struct action_kw *kw;
|
struct action_kw *kw;
|
||||||
struct applet applet; /* used for the applet registration. */
|
struct applet applet; /* used for the applet registration. */
|
||||||
union {
|
union {
|
||||||
|
@ -2293,6 +2293,8 @@ static void deinit_act_rules(struct list *rules)
|
|||||||
list_for_each_entry_safe(rule, ruleb, rules, list) {
|
list_for_each_entry_safe(rule, ruleb, rules, list) {
|
||||||
LIST_DEL(&rule->list);
|
LIST_DEL(&rule->list);
|
||||||
deinit_acl_cond(rule->cond);
|
deinit_acl_cond(rule->cond);
|
||||||
|
if (rule->release_ptr)
|
||||||
|
rule->release_ptr(rule);
|
||||||
free(rule);
|
free(rule);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user