BUG/MEDIUM: mux-h2: remove the HTX EOM block on H2 response headers

If we decided to emit the end of stream flag on the H2 response headers
frame, we must remove the EOM block from the HTX stream, otherwise it
will lead to an extra DATA frame being sent with the ES flag and will
violate the protocol.
This commit is contained in:
Willy Tarreau 2018-12-02 12:28:01 +01:00
parent fab9bb08fc
commit c5753aedf7

View File

@ -3762,6 +3762,9 @@ static size_t h2s_htx_frt_make_resp_headers(struct h2s *h2s, struct htx *htx)
ret += htx_get_blksz(blk);
blk = htx_remove_blk(htx, blk);
}
if (blk_end && htx_get_blk_type(blk_end) == HTX_BLK_EOM)
htx_remove_blk(htx, blk_end);
end:
return ret;
full: