uint64_t nb_hreq; /* number of in-progress http requests */
uint32_t flags; /* QC_CF_* */
- struct {
- uint64_t nb_streams; /* Number of open streams */
- } strms[QCS_MAX_TYPES];
-
/* flow-control fields set by us enforced on our side. */
struct {
struct list frms; /* prepared frames related to flow-control */
qc_free_ncbuf(qcs, &qcs->rx.ncbuf);
b_free(&qcs->tx.buf);
- BUG_ON(!qcc->strms[qcs_id_type(qcs->id)].nb_streams);
- --qcc->strms[qcs_id_type(qcs->id)].nb_streams;
-
/* Remove qcs from qcc tree. */
eb64_delete(&qcs->by_id);
qcs->id = qcs->by_id.key = id;
eb64_insert(&qcc->streams_by_id, &qcs->by_id);
- qcc->strms[type].nb_streams++;
-
/* Allocate transport layer stream descriptor. Only needed for TX. */
if (!quic_stream_is_uni(id) || !quic_stream_is_remote(qcc, id)) {
struct quic_conn *qc = qcc->conn->handle.qc;
qcc->tx.sent_offsets = qcc->tx.offsets = 0;
- qcc->strms[QCS_CLT_BIDI].nb_streams = 0;
- qcc->strms[QCS_CLT_UNI].nb_streams = 0;
- qcc->strms[QCS_SRV_BIDI].nb_streams = 0;
- qcc->strms[QCS_SRV_UNI].nb_streams = 0;
-
LIST_INIT(&qcc->lfctl.frms);
qcc->lfctl.ms_bidi = qcc->lfctl.ms_bidi_init = lparams->initial_max_streams_bidi;
qcc->lfctl.ms_uni = lparams->initial_max_streams_uni;