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.
This commit is contained in:
Amaury Denoyelle 2022-05-20 16:45:32 +02:00
parent d46b0f52ae
commit 209404bff1

View File

@ -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;
}
}