diff --git a/src/mux_quic.c b/src/mux_quic.c index 64b09d79f..65ee6ae44 100644 --- a/src/mux_quic.c +++ b/src/mux_quic.c @@ -1857,6 +1857,14 @@ int qcc_recv(struct qcc *qcc, uint64_t id, uint64_t len, uint64_t offset, offset = qcs->rx.offset; } + if (len && (qcc->flags & QC_CF_WAIT_HS)) { + if (!(qcc->conn->flags & CO_FL_EARLY_DATA)) { + /* Ensure 'Early-data: 1' will be set on the request. */ + TRACE_PROTO("received early data", QMUX_EV_QCC_RECV|QMUX_EV_QCS_RECV, qcc->conn, qcs); + qcc->conn->flags |= CO_FL_EARLY_DATA; + } + } + left = len; while (left) { struct qc_stream_rxbuf *buf;