MEDIUM: quic: implement mux release/conn free
diff --git a/src/mux_quic.c b/src/mux_quic.c
index f17ccd2..1c8669d 100644
--- a/src/mux_quic.c
+++ b/src/mux_quic.c
@@ -1029,7 +1029,9 @@
 
 	qcs->subs = NULL;
 	LIST_INIT(&qcs->list);
-	eb64_insert(&qcc->streams_by_id, &qcs->by_id);
+	// TODO do not insert luqs into streams_by_id as it prevent to detect
+	// that the connection is dead
+	//eb64_insert(&qcc->streams_by_id, &qcs->by_id);
 
 	TRACE_LEAVE(QC_EV_QCS_NEW, qcc->conn);
 	return qcs;
@@ -1071,7 +1073,9 @@
 
 	qcs->subs = NULL;
 	LIST_INIT(&qcs->list);
-	eb64_insert(&qcc->streams_by_id, &qcs->by_id);
+	// TODO do not insert ruqs into streams_by_id as it prevent to detect
+	// that the connection is dead
+	//eb64_insert(&qcc->streams_by_id, &qcs->by_id);
 
 	TRACE_LEAVE(QC_EV_QCS_NEW, qcc->conn);
 	return qcs;
@@ -1595,9 +1599,12 @@
 static void qc_detach(struct conn_stream *cs)
 {
 	struct qcs *qcs = cs->ctx;
+	struct qcc *qcc = qcs->qcc;
 
 	TRACE_ENTER(QC_EV_STRM_END, qcs ? qcs->qcc->conn : NULL, qcs);
-	/* XXX TO DO XXX */
+	qcs_destroy(qcs);
+	if (eb_is_empty(&qcc->streams_by_id))
+		qc_release(qcc);
 	TRACE_LEAVE(QC_EV_STRM_END, qcs ? qcs->qcc->conn : NULL);
 }