MINOR: proxy: Add a "server by name" tree to proxy.

Add a tree to proxy struct to lookup by name for servers attached
to this proxy and populated it at parsing time.
This commit is contained in:
Frdric Lcaille 2019-05-17 14:29:15 +02:00 committed by Willy Tarreau
parent db52d9087a
commit 84d6046a33
3 changed files with 4 additions and 0 deletions

View File

@ -447,6 +447,7 @@ struct proxy {
int line; /* line where the section appears */
struct eb_root used_listener_id;/* list of listener IDs in use */
struct eb_root used_server_id; /* list of server IDs in use */
struct eb_root used_server_name; /* list of server names in use */
struct list bind; /* list of bind settings */
struct list listeners; /* list of listeners belonging to this frontend */
struct arg_list args; /* sample arg list that need to be resolved */

View File

@ -320,6 +320,7 @@ struct server {
struct {
const char *file; /* file where the section appears */
struct eb32_node id; /* place in the tree of used IDs */
struct ebpt_node name; /* place in the tree of used names */
int line; /* line where the section appears */
} conf; /* config information */
/* Template information used only for server objects which

View File

@ -3143,6 +3143,8 @@ out_uri_auth_compat:
next_id = get_next_id(&curproxy->conf.used_server_id, next_id);
newsrv->conf.id.key = newsrv->puid = next_id;
eb32_insert(&curproxy->conf.used_server_id, &newsrv->conf.id);
newsrv->conf.name.key = newsrv->id;
ebis_insert(&curproxy->conf.used_server_name, &newsrv->conf.name);
}
next_id++;
newsrv = newsrv->next;