MEDIUM: connections: Really enforce mux protocol requirements

Commit 1b0dfff552 attempted to make it so
the mux would expect a QUIC-like protocol or not, however it only made
that we would not instantiate a non-QUIC mux on a QUIC protocol, but not
that we tried to instance a QUIC mux on a non-QUIC protocol, so fix
that.
This commit is contained in:
Olivier Houchard 2026-04-08 16:02:06 +02:00 committed by Olivier Houchard
parent 052feec33f
commit 2eefd489c2

View file

@ -616,10 +616,11 @@ static inline const struct mux_proto_list *conn_get_best_mux_entry(
struct mux_proto_list *fallback = NULL;
list_for_each_entry(item, &mux_proto_list.list, list) {
if (!(item->side & proto_side) || !(item->mode & proto_mode) || (proto_is_quic && !(item->mux->flags & MX_FL_FRAMED)))
if (!(item->side & proto_side) || !(item->mode & proto_mode) || ((proto_is_quic != 0) != ((item->mux->flags & MX_FL_FRAMED) != 0)))
continue;
if (istlen(mux_proto) && isteq(mux_proto, item->token))
if (istlen(mux_proto) && isteq(mux_proto, item->token)) {
return item;
}
else if (!istlen(item->token)) {
if (!fallback || (item->mode == proto_mode && fallback->mode != proto_mode))
fallback = item;