BUG/MINOR: config/server: reject QUIC addresses
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 11 Jun 2025 16:26:10 +0000 (18:26 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 17 Jun 2025 06:04:30 +0000 (08:04 +0200)
QUIC is not implemented on the backend side. To prevent any issue, it is
better to reject any server configured which uses it. This is done via
_srv_parse_init() which is used both for static and dynamic servers.

This should be backported up to all stable versions.

(cherry picked from commit 1ecf2e9babe9d2505cebfc9e0f64454be66c2905)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 4b2ae7c9c644b5b27af732dc15df3d2fc7558693)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit dac40233379db32ba92c8fc0a8265a1fba2ddee7)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/server.c

index 44cf16f..8d8e1a2 100644 (file)
@@ -3419,6 +3419,14 @@ static int _srv_parse_init(struct server **srv, char **args, int *cur_arg,
                        goto out;
                }
 
+#ifdef USE_QUIC
+               if (newsrv->addr_type.proto_type == PROTO_TYPE_DGRAM &&
+                   newsrv->addr_type.xprt_type == PROTO_TYPE_STREAM) {
+                       ha_alert("QUIC protocol is unsupported on the backend side.\n");
+                       goto out;
+               }
+#endif
+
                if (!port1 || !port2) {
                        if (sk->ss_family != AF_CUST_RHTTP_SRV) {
                                /* no port specified, +offset, -offset */