]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: server: mark referenced servers as non purgeable
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 23 Aug 2021 12:05:07 +0000 (14:05 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 25 Aug 2021 13:53:54 +0000 (15:53 +0200)
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

src/cfgparse.c
src/sample.c
src/server.c

index 647d085f59a5cb64ccf07b205b5036b4bfd35902..2890fbf97196c200b52fd6895fcf79c7987d8006 100644 (file)
@@ -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 */
index d02034cf088035dc1617894b52c38f4ff487f0f2..c7125636352cb463c0cd932b560b6caecaf9e6b4 100644 (file)
@@ -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;
index fdce968f0868a086b6373053e6f2064c468ab71c..e055fc2c15ceeb39f4c15f4292640f61bb839d3e 100644 (file)
@@ -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);