mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-22 06:37:54 -04:00
MINOR: mux-quic: release connection if no more bidir streams
Use the count of bidirectional streams to call qc_release in qc_detach. We cannot inspect the by_id tree because uni-streams are never removed from it. This allows the connection to be properly freed.
This commit is contained in:
parent
336f6fd964
commit
d595f108db
1 changed files with 2 additions and 1 deletions
|
|
@ -911,6 +911,7 @@ static void qcs_destroy(struct qcs *qcs)
|
|||
* we're in it, we're getting out anyway
|
||||
*/
|
||||
LIST_DEL_INIT(&qcs->list);
|
||||
--qcs->qcc->strms[qcs_id_type(qcs->id)].nb_streams;
|
||||
|
||||
/* ditto, calling tasklet_free() here should be ok */
|
||||
tasklet_free(qcs->shut_tl);
|
||||
|
|
@ -1600,7 +1601,7 @@ static void qc_detach(struct conn_stream *cs)
|
|||
|
||||
TRACE_ENTER(QC_EV_STRM_END, qcs ? qcs->qcc->conn : NULL, qcs);
|
||||
qcs_destroy(qcs);
|
||||
if (eb_is_empty(&qcc->streams_by_id))
|
||||
if (!qcc->strms[QCS_CLT_BIDI].nb_streams)
|
||||
qc_release(qcc);
|
||||
TRACE_LEAVE(QC_EV_STRM_END, qcs ? qcs->qcc->conn : NULL);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue