BUG/MINOR: mux-h1: Don't emit extra CRLF for empty chunked messages

Because of a buggy tests when processing the EOH HTX block, an extra CRLF is
added for empty chunked messages. This bug was introduced by the commit
d1ac2b90c ("MAJOR: htx: Remove the EOM block type and use HTX_FL_EOM
instead").

This fix is specific for 2.4. No backport needed.
This commit is contained in:
Christopher Faulet 2021-02-08 09:34:35 +01:00
parent f00cdb1856
commit 3d6e0e3e04

View File

@ -2082,8 +2082,10 @@ static size_t h1_process_output(struct h1c *h1c, struct buffer *buf, size_t coun
else {
/* EOM flag is set and it is the last block */
if (htx_is_unique_blk(chn_htx, blk) && (chn_htx->flags & HTX_FL_EOM)) {
if ((h1m->flags & H1_MF_CHNK) && !chunk_memcat(&tmp, "\r\n0\r\n\r\n", 7))
goto full;
if (h1m->flags & H1_MF_CHNK) {
if (!chunk_memcat(&tmp, "\r\n0\r\n\r\n", 7))
goto full;
}
else if (!chunk_memcat(&tmp, "\r\n", 2))
goto full;
goto done;