From 7c730803dcababd16432d5e31150c9b48831ab18 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Tue, 8 Aug 2023 11:41:13 +0200 Subject: [PATCH] MINOR: quic: Warning for OpenSSL wrapper QUIC bindings without "limited-quic" If the "limited-quic" globale option wa not set, the QUIC listener bindings were not bound, this is ok, but silently ignored. Add a warning in these cases to ask the user to explicitely enable the QUIC bindings when building QUIC support against a TLS/SSL library without QUIC support (OpenSSL). --- src/protocol.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/protocol.c b/src/protocol.c index 23ca7af70e..3817cf8991 100644 --- a/src/protocol.c +++ b/src/protocol.c @@ -118,13 +118,22 @@ int protocol_supports_flag(struct protocol *proto, uint flag) /* Return 1 if QUIC protocol may be bound, 0 if no, depending on the tuning * parameters. */ -static inline int protocol_may_bind_quic(void) +static inline int protocol_may_bind_quic(struct listener *l) { +#ifdef USE_QUIC_OPENSSL_COMPAT + struct proxy *px = l->bind_conf->frontend; + +#endif if (global.tune.options & GTUNE_NO_QUIC) return 0; #ifdef USE_QUIC_OPENSSL_COMPAT - if (!(global.tune.options & GTUNE_LIMITED_QUIC)) + if (!(global.tune.options & GTUNE_LIMITED_QUIC)) { + ha_warning("Binding [%s:%d] for %s %s: receiving socket not bound" + " (\"limited-quic\" global option is not set)\n", + l->bind_conf->file, l->bind_conf->line, + proxy_type_str(px), px->id); return 0; + } #endif return 1; } @@ -146,12 +155,12 @@ int protocol_bind_all(int verbose) HA_SPIN_LOCK(PROTO_LOCK, &proto_lock); list_for_each_entry(proto, &protocols, list) { list_for_each_entry(receiver, &proto->receivers, proto_list) { + listener = LIST_ELEM(receiver, struct listener *, rx); #ifdef USE_QUIC if ((proto == &proto_quic4 || proto == &proto_quic6) && - !protocol_may_bind_quic()) + !protocol_may_bind_quic(listener)) continue; #endif - listener = LIST_ELEM(receiver, struct listener *, rx); lerr = proto->fam->bind(receiver, &errmsg); err |= lerr; -- 2.39.5