diff --git a/src/h3.c b/src/h3.c index c2dfd0002..317e66611 100644 --- a/src/h3.c +++ b/src/h3.c @@ -870,7 +870,6 @@ static int h3_finalize(void *ctx) if (!h3c->lctrl.qcs) return 0; - /* Wakeup ->lctrl uni-stream */ h3_control_send(&h3c->lctrl, h3c); return 1; @@ -967,7 +966,7 @@ static int h3_init(struct qcc *qcc) !h3_uqs_init(&h3c->rctrl, h3c, h3_control_recv, h3_uqs_task)) goto fail_no_h3_ruqs; - if (!h3_uqs_init(&h3c->lctrl, h3c, h3_control_send, h3_uqs_task) || + if (!h3_uqs_init(&h3c->lctrl, h3c, NULL, h3_uqs_task) || !h3_uqs_init(&h3c->lqpack_enc, h3c, NULL, h3_uqs_task) || !h3_uqs_init(&h3c->lqpack_dec, h3c, NULL, h3_uqs_task)) goto fail_no_h3_luqs; diff --git a/src/mux_quic.c b/src/mux_quic.c index b7845a7c5..c4c2e46b9 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -1104,14 +1104,12 @@ static int qc_send(struct qcc *qcc) node = eb64_first(&qcc->streams_by_id); while (node) { int ret; - qcs = eb64_entry(node, struct qcs, by_id); + uint64_t id; - /* 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->id)) { + qcs = eb64_entry(node, struct qcs, by_id); + id = qcs->id; + + if (quic_stream_is_uni(id) && quic_stream_is_remote(qcc, id)) { node = eb64_next(node); continue; }