mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: config: make sure never to mix dgram and stream protocols on a bind line
It is absolutely not possible to use the same "bind" line to listen to both quic and tcp for example, because no single transport layer would fit both modes and we'll need the type to choose one then to choose a mux. Let's make sure this does not happen. This may be relaxed in the future if we manage to instantiate transport layers on the fly, but the SSL vs quic part might be tricky to handle.
This commit is contained in:
parent
8d31ab0438
commit
26f221bd55
@ -3776,6 +3776,23 @@ out_uri_auth_compat:
|
||||
list_for_each_entry(bind_conf, &curproxy->conf.bind, by_fe) {
|
||||
int mode = (1 << (curproxy->mode == PR_MODE_HTTP));
|
||||
const struct mux_proto_list *mux_ent;
|
||||
const struct listener *l;
|
||||
int types = 0;
|
||||
|
||||
/* check that the mux is compatible with all listeners'
|
||||
* protocol types (dgram or stream).
|
||||
*/
|
||||
list_for_each_entry(l, &bind_conf->listeners, by_bind)
|
||||
types |= 1 << l->rx.proto->proto_type;
|
||||
|
||||
if (atleast2(types)) {
|
||||
ha_alert("%s '%s' : cannot mix datagram and stream protocols "
|
||||
"for 'bind %s' at [%s:%d].\n",
|
||||
proxy_type_str(curproxy), curproxy->id,
|
||||
bind_conf->arg, bind_conf->file, bind_conf->line);
|
||||
cfgerr++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!bind_conf->mux_proto)
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user