mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
MEDIUM: proxy: register a post-section cleanup function
For listen/frontend/backend, we now want to be able to clean up the default-server directive that's no longer used past the end of the section. For this we register a post-section function and perform the cleanup there.
This commit is contained in:
parent
49a619acae
commit
abcc73830f
24
src/proxy.c
24
src/proxy.c
@ -2818,6 +2818,30 @@ void proxy_adjust_all_maxconn()
|
||||
}
|
||||
}
|
||||
|
||||
/* releases what's no longer needed after a proxy section covering <curproxy>.
|
||||
* Returns an error code made of ERR_*, or 0 on success.
|
||||
*/
|
||||
static int post_section_px_cleanup()
|
||||
{
|
||||
if ((curproxy->cap & PR_CAP_LISTEN) && !(curproxy->cap & PR_CAP_DEF)) {
|
||||
/* This is a regular proxy (not defaults). It doesn't need
|
||||
* to keep a default-server section if it still had one. We
|
||||
* want to keep it for defaults however, obviously.
|
||||
*/
|
||||
|
||||
if (curproxy->defsrv) {
|
||||
ha_free((char **)&curproxy->defsrv->conf.file);
|
||||
ha_free(&curproxy->defsrv);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
REGISTER_CONFIG_POST_SECTION("frontend", post_section_px_cleanup);
|
||||
REGISTER_CONFIG_POST_SECTION("backend", post_section_px_cleanup);
|
||||
REGISTER_CONFIG_POST_SECTION("listen", post_section_px_cleanup);
|
||||
REGISTER_CONFIG_POST_SECTION("defaults", post_section_px_cleanup);
|
||||
|
||||
/* Config keywords below */
|
||||
|
||||
static struct cfg_kw_list cfg_kws = {ILH, {
|
||||
|
Loading…
Reference in New Issue
Block a user