MINOR: mux-h2: make HTX_BLK_EOM processing idempotent
We want to make sure we won't emit another empty DATA frame if we meet HTX_BLK_EOM after and end of stream was already sent. For now it cannot happen as far as HTX is respected, but with trailers it may become ambiguous.
This commit is contained in:
parent
6195237040
commit
7eeb10a5b5
12
src/mux_h2.c
12
src/mux_h2.c
|
@ -4563,8 +4563,16 @@ static size_t h2s_htx_frt_make_resp_data(struct h2s *h2s, struct buffer *buf, si
|
|||
count--;
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (type != HTX_BLK_DATA && type != HTX_BLK_EOM)
|
||||
else if (type == HTX_BLK_EOM) {
|
||||
if (h2s->flags & H2_SF_ES_SENT) {
|
||||
/* ES already sent */
|
||||
htx_remove_blk(htx, blk);
|
||||
total++; // EOM counts as one byte
|
||||
count--;
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
else if (type != HTX_BLK_DATA)
|
||||
goto end;
|
||||
|
||||
/* Perform some optimizations to reduce the number of buffer copies.
|
||||
|
|
Loading…
Reference in New Issue