]> git.kaiwu.me - haproxy.git/commitdiff
BUG/MINOR: mux-h2: condition the processing of 8441 extension to global setting
authorWilly Tarreau <w@1wt.eu>
Tue, 5 May 2026 09:40:29 +0000 (11:40 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 5 May 2026 12:09:49 +0000 (14:09 +0200)
When rfc8441 (extended connect) is disabled via
h2-workaround-bogus-websocket-clients, we properly refrain from
advertising support for extended connect, but we should also ignore
the incoming setting, otherwise it can remain enabled if the client
advertises it.

This should be backported to stable versions.

src/mux_h2.c

index 1c720a44d4534d4574c93d84852ed0b247387a76..61e7db54b826e313a828bff239e41337aaa4e0d1 100644 (file)
@@ -2935,7 +2935,8 @@ static int h2c_handle_settings(struct h2c *h2c)
                        }
                        break;
                case H2_SETTINGS_ENABLE_CONNECT_PROTOCOL:
-                       if (arg == 1)
+                       /* setting only considered if rfc8441 not disabled */
+                       if (arg == 1 && !(global.tune.options & GTUNE_DISABLE_H2_WEBSOCKET))
                                h2c->flags |= H2_CF_RCVD_RFC8441;
                        break;
                }