mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-19 13:35:47 +00:00
BUG/MEDIUM: mux-h1: make HTX chunking consistent with H2
When transfering from H1 to H1, chunking is always indicated by the presence of the Transfer-encoding header field. But when a message comes from H2 there is no such header and only HTX_SL_F_XFER_LEN ought to be relied on. This one will also result in H1_MF_XFER_LEN to be set, just like transfer-encoding, so let's always rely on this latter flag to detect the need for chunking (when CLEN is not here) and automatically add the transfer-encoding header if it was not present, as reported by H1_MF_CHNK. This must be backported to 1.9.
This commit is contained in:
parent
34d234824d
commit
4710d20743
@ -1533,6 +1533,14 @@ static size_t h1_process_output(struct h1c *h1c, struct buffer *buf, size_t coun
|
||||
goto copy;
|
||||
}
|
||||
}
|
||||
|
||||
if ((h1m->flags & (H1_MF_CLEN|H1_MF_CHNK|H1_MF_XFER_LEN)) == H1_MF_XFER_LEN) {
|
||||
/* chunking needed but header not seen */
|
||||
if (!chunk_memcat(tmp, "transfer-encoding: chunked\r\n", 28))
|
||||
goto copy;
|
||||
h1m->flags |= H1_MF_CHNK;
|
||||
}
|
||||
|
||||
h1m->state = H1_MSG_LAST_LF;
|
||||
if (!chunk_memcat(tmp, "\r\n", 2))
|
||||
goto copy;
|
||||
|
Loading…
Reference in New Issue
Block a user