From 5e4b6714e1e9492f45e55bd47ca04d1a44c4a814 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 23 Aug 2025 19:37:26 +0200 Subject: [PATCH] MINOR: listener: add listener_index_id() to index a listener by its ID This avoids needlessly exposing the tree's root and the mechanics outside of the low-level code. --- include/haproxy/listener.h | 9 +++++++++ src/cfgparse.c | 2 +- src/listener.c | 6 +++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/haproxy/listener.h b/include/haproxy/listener.h index 296fbd139..88146e0a4 100644 --- a/include/haproxy/listener.h +++ b/include/haproxy/listener.h @@ -25,8 +25,11 @@ #include #include +#include + #include #include +#include struct proxy; struct task; @@ -236,6 +239,12 @@ enum li_status get_li_status(struct listener *l); /* number of times an accepted connection resulted in maxconn being reached */ extern ullong maxconn_reached; +/* index listener
  • 's id into proxy 's used_listener_id */ +static inline void listener_index_id(struct proxy *px, struct listener *li) +{ + eb32_insert(&px->conf.used_listener_id, &li->conf.id); +} + static inline uint accept_queue_ring_len(const struct accept_queue_ring *ring) { uint idx, head, tail, len; diff --git a/src/cfgparse.c b/src/cfgparse.c index b03628a06..3aef28aee 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -4292,7 +4292,7 @@ init_proxies_list_stage2: } next_id = listener_get_next_id(curproxy, next_id); listener->conf.id.key = listener->luid = next_id; - eb32_insert(&curproxy->conf.used_listener_id, &listener->conf.id); + listener_index_id(curproxy, listener); } next_id++; diff --git a/src/listener.c b/src/listener.c index 5f74abe5a..87ac573ed 100644 --- a/src/listener.c +++ b/src/listener.c @@ -1874,7 +1874,7 @@ int bind_complete_thread_setup(struct bind_conf *bind_conf, int *err_code) tmp_li->luid = 0; eb32_delete(&tmp_li->conf.id); if (new_li->luid) - eb32_insert(&fe->conf.used_listener_id, &new_li->conf.id); + listener_index_id(fe, new_li); new_li = tmp_li; } } @@ -1898,7 +1898,7 @@ int bind_complete_thread_setup(struct bind_conf *bind_conf, int *err_code) li->luid = 0; eb32_delete(&li->conf.id); if (new_li->luid) - eb32_insert(&fe->conf.used_listener_id, &new_li->conf.id); + listener_index_id(fe, new_li); } } @@ -2256,7 +2256,7 @@ static int bind_parse_id(char **args, int cur_arg, struct proxy *px, struct bind return ERR_ALERT | ERR_FATAL; } - eb32_insert(&px->conf.used_listener_id, &new->conf.id); + listener_index_id(px, new); return 0; }