diff --git a/haproxy-patches/disable-rfc-6455-compliance.patch b/haproxy-patches/disable-rfc-6455-compliance.patch index 10494186..ad9645ec 100644 --- a/haproxy-patches/disable-rfc-6455-compliance.patch +++ b/haproxy-patches/disable-rfc-6455-compliance.patch @@ -1,6 +1,6 @@ ---- src/mux_h1.c 2021-07-07 15:46:09.000000000 +0100 -+++ src/mux_h1.updated.c 2021-08-04 12:29:07.000000000 +0100 -@@ -1396,20 +1396,6 @@ +--- src/mux_h1.c 2025-11-27 09:39:25 ++++ src/mux_h1.updated.c 2025-11-27 09:40:45 +@@ -1980,31 +2002,6 @@ goto end; } @@ -8,13 +8,24 @@ - if ((h1m->flags & (H1_MF_CONN_UPG|H1_MF_UPG_WEBSOCKET)) == - (H1_MF_CONN_UPG|H1_MF_UPG_WEBSOCKET)) { - int ws_ret = h1_search_websocket_key(h1s, h1m, htx); +- - if (!ws_ret) { -- h1s->flags |= H1S_F_PARSING_ERROR; -- TRACE_ERROR("missing/invalid websocket key, reject H1 message", H1_EV_RX_DATA|H1_EV_RX_HDRS|H1_EV_H1S_ERR, h1s->h1c->conn, h1s); - h1_capture_bad_message(h1s->h1c, h1s, h1m, buf); - -- ret = 0; -- goto end; +- if ((!(h1m->flags & H1_MF_RESP) && !(h1s->h1c->px->options2 & PR_O2_REQBUG_OK)) || +- ((h1m->flags & H1_MF_RESP) && !(h1s->h1c->px->options2 & PR_O2_RSPBUG_OK))) { +- htx->flags |= HTX_FL_PARSING_ERROR; +- h1s->flags |= H1S_F_PARSING_ERROR; +- TRACE_ERROR("missing/invalid websocket key, reject H1 message", +- H1_EV_RX_DATA|H1_EV_RX_HDRS|H1_EV_H1S_ERR, h1s->h1c->conn, h1s); +- +- ret = 0; +- goto end; +- } else { +- TRACE_ERROR("missing/invalid websocket key, but accepting this " +- "violation according to configuration", +- H1_EV_RX_DATA|H1_EV_RX_HDRS|H1_EV_H1S_ERR, h1s->h1c->conn, h1s); +- } - } - } -