mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 16:47:18 +02:00
MINOR: mux-h1: Change client conn_mode on an explicit close for the response
in h1_set_cli_conn_mode(), on the response path, If the response's connection header is explicitly set to close and if the request is unfinished (state != DONE), then the client connection is marked as WANT_CLO.
This commit is contained in:
parent
d1ebb1eeb5
commit
bd44ca6ede
@ -585,7 +585,8 @@ static void h1_set_cli_conn_mode(struct h1s *h1s, struct h1m *h1m)
|
|||||||
if ((h1s->meth == HTTP_METH_CONNECT && h1s->status == 200) ||
|
if ((h1s->meth == HTTP_METH_CONNECT && h1s->status == 200) ||
|
||||||
h1s->status == 101)
|
h1s->status == 101)
|
||||||
h1s->flags = (h1s->flags & ~H1S_F_WANT_MSK) | H1S_F_WANT_TUN;
|
h1s->flags = (h1s->flags & ~H1S_F_WANT_MSK) | H1S_F_WANT_TUN;
|
||||||
else if (!(h1m->flags & H1_MF_XFER_LEN)) /* no length known => close */
|
else if (!(h1m->flags & H1_MF_XFER_LEN) || /* no length known => close */
|
||||||
|
(h1m->flags & H1_MF_CONN_CLO && h1s->req.state != H1_MSG_DONE)) /*explicit close and unfinished request */
|
||||||
h1s->flags = (h1s->flags & ~H1S_F_WANT_MSK) | H1S_F_WANT_CLO;
|
h1s->flags = (h1s->flags & ~H1S_F_WANT_MSK) | H1S_F_WANT_CLO;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user