mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02:00
MEDIUM: peers: call bind_complete_thread_setup() to finish the config
The listeners in peers sections were still not handing the thread groups fine. Shards were silently ignored and if a listener was bound to more than one group, it would simply fail. Now we can call the dedicated function to resolve all this and possibly create the missing extra listeners. bind_complete_thread_setup() was adjusted to use the proxy_type_str() instead of writing "proxy" at the only place where this word was still hard-coded so that we continue to speak about peers sections when relevant.
This commit is contained in:
parent
da0d2cb698
commit
a22db6567f
@ -4385,7 +4385,7 @@ int check_config_validity()
|
||||
if (!LIST_ISEMPTY(&curpeers->peers_fe->conf.bind)) {
|
||||
struct list *l;
|
||||
struct bind_conf *bind_conf;
|
||||
struct listener *li;
|
||||
int ret;
|
||||
|
||||
l = &curpeers->peers_fe->conf.bind;
|
||||
bind_conf = LIST_ELEM(l->n, typeof(bind_conf), by_fe);
|
||||
@ -4401,23 +4401,12 @@ int check_config_validity()
|
||||
}
|
||||
}
|
||||
|
||||
err = NULL;
|
||||
if (thread_resolve_group_mask(&bind_conf->thread_set, 1, &err) < 0) {
|
||||
ha_alert("Peers section '%s': %s in 'bind %s' at [%s:%d].\n",
|
||||
curpeers->peers_fe->id, err, bind_conf->arg, bind_conf->file, bind_conf->line);
|
||||
free(err);
|
||||
cfgerr++;
|
||||
}
|
||||
else if (atleast2(bind_conf->thread_set.grps)) {
|
||||
ha_alert("Peers section '%s': 'thread' spans more than one group in 'bind %s' at [%s:%d].\n",
|
||||
curpeers->peers_fe->id, bind_conf->arg, bind_conf->file, bind_conf->line);
|
||||
cfgerr++;
|
||||
}
|
||||
|
||||
/* apply thread masks and groups to all receivers */
|
||||
list_for_each_entry(li, &bind_conf->listeners, by_bind) {
|
||||
li->rx.bind_thread = thread_set_nth_tmask(&bind_conf->thread_set, 0);
|
||||
li->rx.bind_tgroup = thread_set_nth_group(&bind_conf->thread_set, 0);
|
||||
/* finish the bind setup */
|
||||
ret = bind_complete_thread_setup(bind_conf, &err_code);
|
||||
if (ret != 0) {
|
||||
cfgerr += ret;
|
||||
if (err_code & ERR_FATAL)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (bind_conf->xprt->prepare_bind_conf &&
|
||||
|
@ -1654,7 +1654,8 @@ int bind_complete_thread_setup(struct bind_conf *bind_conf, int *err_code)
|
||||
|
||||
err = NULL;
|
||||
if (thread_resolve_group_mask(&bind_conf->thread_set, (fe == global.cli_fe) ? 1 : 0, &err) < 0) {
|
||||
ha_alert("Proxy '%s': %s in 'bind %s' at [%s:%d].\n",
|
||||
ha_alert("%s '%s': %s in 'bind %s' at [%s:%d].\n",
|
||||
proxy_type_str(fe),
|
||||
fe->id, err, bind_conf->arg, bind_conf->file, bind_conf->line);
|
||||
free(err);
|
||||
cfgerr++;
|
||||
|
Loading…
Reference in New Issue
Block a user