MINOR: mux-quic: prevent push frame for unidir streams

For the moment, unidirectional streams handling is not identical to
bidirectional ones in MUX/H3 layer, both in Rx and Tx path. As a safety,
skip over uni streams in qc_send.

In fact, this change has no impact because qcs.tx.buf is emptied before
we start using qcs_push_frame, which prevents the call to
qcs_push_frame. However, this condition will soon change to improve
bidir streams emission, so an explicit check on stream type must be
done.

It is planified to unify uni and bidir streams handling in a future
stage. When implemented, the check will be removed.
This commit is contained in:
Amaury Denoyelle 2022-03-10 16:46:18 +01:00
parent 728b30d750
commit e2ec9421ea
1 changed files with 10 additions and 0 deletions

View File

@ -450,6 +450,16 @@ static int qc_send(struct qcc *qcc)
struct qcs *qcs = container_of(node, struct qcs, by_id);
struct buffer *buf = &qcs->tx.buf;
/* TODO
* for the moment, unidirectional streams have their own
* mechanism for sending. This should be unified in the future,
* in this case the next check will be removed.
*/
if (quic_stream_is_uni(qcs->by_id.key)) {
node = eb64_next(node);
continue;
}
if (b_data(buf)) {
char fin = qcs->flags & QC_SF_FIN_STREAM;
ret = qcs_push_frame(qcs, buf, fin, qcs->tx.offset,