mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 08:37:04 +02:00
MINOR: mux-quic: set EOS on rcv_buf
Flags EOI/EOS must be set on conn-stream when transfering the last data of a stream in rcv_buf. This is activated if qcs HTX buffer has the EOM flag and has been fully transfered.
This commit is contained in:
parent
9a327a7c3f
commit
eb53e5baa1
@ -558,6 +558,7 @@ static size_t qc_rcv_buf(struct conn_stream *cs, struct buffer *buf,
|
|||||||
struct htx *qcs_htx = NULL;
|
struct htx *qcs_htx = NULL;
|
||||||
struct htx *cs_htx = NULL;
|
struct htx *cs_htx = NULL;
|
||||||
size_t ret = 0;
|
size_t ret = 0;
|
||||||
|
char fin = 0;
|
||||||
|
|
||||||
fprintf(stderr, "%s\n", __func__);
|
fprintf(stderr, "%s\n", __func__);
|
||||||
|
|
||||||
@ -582,8 +583,10 @@ static size_t qc_rcv_buf(struct conn_stream *cs, struct buffer *buf,
|
|||||||
BUG_ON(qcs_htx->flags & HTX_FL_PARSING_ERROR);
|
BUG_ON(qcs_htx->flags & HTX_FL_PARSING_ERROR);
|
||||||
|
|
||||||
/* Copy EOM from src to dst buffer if all data copied. */
|
/* Copy EOM from src to dst buffer if all data copied. */
|
||||||
if (htx_is_empty(qcs_htx))
|
if (htx_is_empty(qcs_htx) && (qcs_htx->flags & HTX_FL_EOM)) {
|
||||||
cs_htx->flags |= (qcs_htx->flags & HTX_FL_EOM);
|
cs_htx->flags |= HTX_FL_EOM;
|
||||||
|
fin = 1;
|
||||||
|
}
|
||||||
|
|
||||||
cs_htx->extra = qcs_htx->extra ? (qcs_htx->data + qcs_htx->extra) : 0;
|
cs_htx->extra = qcs_htx->extra ? (qcs_htx->data + qcs_htx->extra) : 0;
|
||||||
htx_to_buf(cs_htx, buf);
|
htx_to_buf(cs_htx, buf);
|
||||||
@ -599,7 +602,8 @@ static size_t qc_rcv_buf(struct conn_stream *cs, struct buffer *buf,
|
|||||||
if (cs->flags & CS_FL_ERR_PENDING)
|
if (cs->flags & CS_FL_ERR_PENDING)
|
||||||
cs->flags |= CS_FL_ERROR;
|
cs->flags |= CS_FL_ERROR;
|
||||||
|
|
||||||
/* TODO put CS_FL_EOI/EOS on fin */
|
if (fin)
|
||||||
|
cs->flags |= (CS_FL_EOI|CS_FL_EOS);
|
||||||
|
|
||||||
if (b_size(&qcs->rx.app_buf)) {
|
if (b_size(&qcs->rx.app_buf)) {
|
||||||
b_free(&qcs->rx.app_buf);
|
b_free(&qcs->rx.app_buf);
|
||||||
|
Loading…
Reference in New Issue
Block a user