CLEANUP: server: use server_find_by_name() where relevant

Instead of open-coding a tree lookup, in sticking rules and server_find(),
let's just rely on server_find_by_name() which now does exactly the same.
This commit is contained in:
Willy Tarreau 2025-07-10 11:10:36 +02:00
parent 61acd15ea8
commit 31526f73e6
2 changed files with 3 additions and 9 deletions

View File

@ -4039,11 +4039,7 @@ struct server *server_find(struct proxy *bk, const char *name)
curserver = server_find_by_id(bk, atoi(name + 1));
}
else {
struct ebpt_node *node;
node = ebis_lookup(&bk->conf.used_server_name, name);
if (node)
curserver = container_of(node, struct server, conf.name);
curserver = server_find_by_name(bk, name);
}
return curserver;

View File

@ -1265,11 +1265,9 @@ static inline void sticking_rule_find_target(struct stream *s,
struct ebpt_node *node;
if (t->server_key_type == STKTABLE_SRV_NAME) {
node = ebis_lookup(&px->conf.used_server_name, de->value.key);
if (node) {
srv = container_of(node, struct server, conf.name);
srv = server_find_by_name(px, de->value.key);
if (srv)
goto found;
}
} else if (t->server_key_type == STKTABLE_SRV_ADDR) {
HA_RWLOCK_RDLOCK(PROXY_LOCK, &px->lock);
node = ebis_lookup(&px->used_server_addr, de->value.key);