From: Amaury Denoyelle Date: Fri, 20 May 2022 14:45:32 +0000 (+0200) Subject: MINOR: mux-quic: emit STREAM_LIMIT_ERROR X-Git-Tag: v2.6-dev11~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=209404bff1a652a0940a31fc9ff2549368641ee7;p=thirdparty%2Fhaproxy.git MINOR: mux-quic: emit STREAM_LIMIT_ERROR Send a CONNECTION_CLOSE on reception of a STREAM frame for a STREAM id exceeding the maximum value enforced. Only implemented for bidirectional streams for the moment. --- diff --git a/src/mux_quic.c b/src/mux_quic.c index 8485f818bb..443eee7f06 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -384,7 +384,14 @@ struct qcs *qcc_get_qcs(struct qcc *qcc, uint64_t id) /* TODO also checks max-streams for uni streams */ if (quic_stream_is_bidi(id)) { if (sub_id + 1 > qcc->lfctl.ms_bidi) { - /* streams limit reached */ + /* RFC 9000 4.6. Controlling Concurrency + * + * An endpoint that receives a frame with a + * stream ID exceeding the limit it has sent + * MUST treat this as a connection error of + * type STREAM_LIMIT_ERROR + */ + qcc_emit_cc(qcc, QC_ERR_STREAM_LIMIT_ERROR); goto out; } }