summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Denoyelle <adenoyelle@haproxy.com>2021-08-23 14:05:07 +0200
committerAmaury Denoyelle <adenoyelle@haproxy.com>2021-08-25 15:53:54 +0200
commit0626961ad3d3153f6761dbdd4336296acbde0864 (patch)
tree09aea2d9c9a1f79cfedc7e6937edbca5e80c4279
parent5cca48cba2bd638a10e11b91e6fa218db8cef148 (diff)
downloadhaproxy-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.c1
-rw-r--r--src/sample.c2
-rw-r--r--src/server.c1
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);