mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 06:11:32 +01:00
MEDIUM: h1: ensure that 1xx, 204 and 304 don't have a payload body
It's important for the H2 to H1 gateway that the response parser properly clears the H1 message's body_len when seeing these status codes so that we don't hang waiting to transfer data that will not come.
This commit is contained in:
parent
404d978d40
commit
8ea0f38c75
9
src/h1.c
9
src/h1.c
@ -1127,7 +1127,14 @@ int h1_headers_to_hdr_list(char *start, const char *stop,
|
||||
if (h1m) {
|
||||
long long cl;
|
||||
|
||||
if (isteq(n, ist("transfer-encoding"))) {
|
||||
if (start[st_c] == '1' || /* 100..199 */
|
||||
isteq(ist2(start + st_c, st_c_l), ist("204")) ||
|
||||
isteq(ist2(start + st_c, st_c_l), ist("304"))) {
|
||||
/* no contents, claim c-len is present and set to zero */
|
||||
h1m->flags |= H1_MF_CLEN;
|
||||
h1m->curr_len = h1m->body_len = 0;
|
||||
}
|
||||
else if (isteq(n, ist("transfer-encoding"))) {
|
||||
h1m->flags &= ~H1_MF_CLEN;
|
||||
h1m->flags |= H1_MF_CHNK;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user