From: Willy Tarreau Date: Thu, 10 Jul 2025 09:10:36 +0000 (+0200) Subject: CLEANUP: server: use server_find_by_name() where relevant X-Git-Tag: v3.3-dev4~93 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31526f73e68680aa3138d12c16ca65be4b985568;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/server.c b/src/server.c index b924b3136..c0a0bd552 100644 --- a/src/server.c +++ b/src/server.c @@ -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; diff --git a/src/stream.c b/src/stream.c index f6e32a50f..33d51493b 100644 --- a/src/stream.c +++ b/src/stream.c @@ -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);