diff --git a/src/hq_interop.c b/src/hq_interop.c index 4dbd9adf4..3ded46266 100644 --- a/src/hq_interop.c +++ b/src/hq_interop.c @@ -171,10 +171,13 @@ static size_t hq_interop_snd_buf(struct qcs *qcs, struct buffer *buf, uint32_t bsize, fsize; struct buffer *res = NULL; size_t total = 0; + char eom; int err; *fin = 0; htx = htx_from_buf(buf); + /* EOM is saved here, useful if 0-copy is performed with HTX buf. */ + eom = htx->flags & HTX_FL_EOM; while (count && !htx_is_empty(htx) && qcc_stream_can_send(qcs)) { /* Not implemented : QUIC on backend side */ @@ -267,7 +270,7 @@ static size_t hq_interop_snd_buf(struct qcs *qcs, struct buffer *buf, } end: - if (htx->flags & HTX_FL_EOM && htx_is_empty(htx)) + if (eom && htx_is_empty(htx)) *fin = 1; htx_to_buf(htx, buf);