return 0;
}
+/* Insert <srv> server into <px> proxy name tree. Caller must ensure the name
+ * is unique prior to this.
+ */
+static void _srv_register_name(struct server *srv, struct proxy *px)
+{
+ struct server *node __maybe_unused;
+ node = cebuis_item_insert(&px->conf.used_server_name, conf.name_node, id, srv);
+ BUG_ON(srv != node);
+}
+
/* Initialize as much as possible servers from <srv> server template.
* Note that a server template is a special server with
* a few different parameters than a server which has
goto out;
}
- cebis_item_insert(&curproxy->conf.used_server_name, conf.name_node, id, srv);
+ _srv_register_name(srv, curproxy);
/* then create other servers from this one */
for (i = srv->tmpl_info.nb_low + 1; i <= srv->tmpl_info.nb_high; i++) {
goto out;
}
- cebis_item_insert(&curproxy->conf.used_server_name, conf.name_node, id, newsrv);
+ _srv_register_name(newsrv, curproxy);
}
out:
goto out;
}
else if (!(parse_flags & SRV_PARSE_DEFAULT_SERVER)) {
- cebis_item_insert(&curproxy->conf.used_server_name, conf.name_node, id, newsrv);
+ _srv_register_name(newsrv, curproxy);
}
/* If the server id is fixed, insert it in the proxy used_id tree.
if (!px)
return NULL;
- return cebis_item_lookup(&px->conf.used_server_name, conf.name_node, id, name, struct server);
+ return cebuis_item_lookup(&px->conf.used_server_name, conf.name_node, id, name, struct server);
}
/*
old_name = srv->id;
/* re-index in the name tree */
- cebis_item_delete(&be->conf.used_server_name, conf.name_node, id, srv);
+ cebuis_item_delete(&be->conf.used_server_name, conf.name_node, id, srv);
srv->id = dup;
- cebis_item_insert(&be->conf.used_server_name, conf.name_node, id, srv);
+ _srv_register_name(srv, be);
/* publish rename event with both old and new names */
{
/* insert the server in the backend trees */
server_index_id(be, srv);
- cebis_item_insert(&be->conf.used_server_name, conf.name_node, id, srv);
+ _srv_register_name(srv, be);
/* addr_key could be NULL if FQDN resolution is postponed (ie: add server from cli) */
if (srv->addr_key)
cebuis_item_insert(&be->used_server_addr, addr_node, addr_key, srv);
/* remove srv from addr_node tree */
ceb32_item_delete(&be->conf.used_server_id, conf.puid_node, puid, srv);
- cebis_item_delete(&be->conf.used_server_name, conf.name_node, id, srv);
+ cebuis_item_delete(&be->conf.used_server_name, conf.name_node, id, srv);
cebuis_item_delete(&be->used_server_addr, addr_node, addr_key, srv);
/* remove srv from idle_node tree for idle conn cleanup */