diff options
author | Amaury Denoyelle <adenoyelle@haproxy.com> | 2021-08-23 14:05:07 +0200 |
---|---|---|
committer | Amaury Denoyelle <adenoyelle@haproxy.com> | 2021-08-25 15:53:54 +0200 |
commit | 0626961ad3d3153f6761dbdd4336296acbde0864 (patch) | |
tree | 09aea2d9c9a1f79cfedc7e6937edbca5e80c4279 | |
parent | 5cca48cba2bd638a10e11b91e6fa218db8cef148 (diff) | |
download | haproxy-0626961ad3d3153f6761dbdd4336296acbde0864.tar.gz |
MINOR: server: mark referenced servers as non purgeable
Mark servers that are referenced by configuration elements as non
purgeable. This includes the following list :
- tracked servers
- servers referenced in a use-server rule
- servers referenced in a sample fetch
-rw-r--r-- | src/cfgparse.c | 1 | ||||
-rw-r--r-- | src/sample.c | 2 | ||||
-rw-r--r-- | src/server.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/cfgparse.c b/src/cfgparse.c index 647d085f5..2890fbf97 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -2841,6 +2841,7 @@ int check_config_validity() } ha_free(&srule->srv.name); srule->srv.ptr = target; + target->flags |= SRV_F_NON_PURGEABLE; } /* find the target table for 'stick' rules */ diff --git a/src/sample.c b/src/sample.c index d02034cf0..c71256363 100644 --- a/src/sample.c +++ b/src/sample.c @@ -1214,6 +1214,8 @@ int smp_resolve_args(struct proxy *p, char **err) break; } + srv->flags |= SRV_F_NON_PURGEABLE; + chunk_destroy(&arg->data.str); arg->unresolved = 0; arg->data.srv = srv; diff --git a/src/server.c b/src/server.c index fdce968f0..e055fc2c1 100644 --- a/src/server.c +++ b/src/server.c @@ -4928,6 +4928,7 @@ int srv_apply_track(struct server *srv, struct proxy *curproxy) srv->track = strack; srv->tracknext = strack->trackers; strack->trackers = srv; + strack->flags |= SRV_F_NON_PURGEABLE; ha_free(&srv->trackit); |