MINOR: stktable: add stktable_deinit function

Adding sktable_deinit() helper function to properly cleanup a sticktable
that was initialized using stktable_init().
This commit is contained in:
Aurelien DARRAGON 2023-11-16 16:17:12 +01:00 committed by Willy Tarreau
parent 6c7771f1b4
commit e10cf61099
3 changed files with 15 additions and 2 deletions

View File

@ -47,6 +47,7 @@ int stksess_kill(struct stktable *t, struct stksess *ts, int decrefcount);
int stktable_get_key_shard(struct stktable *t, const void *key, size_t len);
int stktable_init(struct stktable *t, char **err_msg);
void stktable_deinit(struct stktable *t);
int stktable_parse_type(char **args, int *idx, unsigned long *type, size_t *key_size, const char *file, int linenum);
int parse_stick_table(const char *file, int linenum, char **args,
struct stktable *t, char *id, char *nid, struct peers *peers);

View File

@ -389,8 +389,7 @@ void free_proxy(struct proxy *p)
pool_destroy(p->req_cap_pool);
pool_destroy(p->rsp_cap_pool);
if (p->table)
pool_destroy(p->table->pool);
stktable_deinit(p->table);
HA_RWLOCK_DESTROY(&p->lbprm.lock);
HA_RWLOCK_DESTROY(&p->lock);

View File

@ -865,6 +865,19 @@ int stktable_init(struct stktable *t, char **err_msg)
return 0;
}
/* Performs stick table cleanup: it's meant to be called after the table
* has been initialized ith stktable_init(), else it will lead to undefined
* behavior.
*
* However it does not free the table pointer itself
*/
void stktable_deinit(struct stktable *t)
{
if (!t)
return;
pool_destroy(t->pool);
}
/*
* Configuration keywords of known table types
*/