mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-25 07:41:36 +02:00
MINOR: mux-h2: check for too many streams only for idle streams
The HEADERS frame parser checks if we still have too many streams, but this should only be done for idle streams, otherwise it would prevent us from processing trailer frames.
This commit is contained in:
parent
b8c4dd3320
commit
415b1ee18b
@ -1859,9 +1859,6 @@ static struct h2s *h2c_frt_handle_headers(struct h2c *h2c, struct h2s *h2s)
|
|||||||
if (b_data(&h2c->dbuf) < h2c->dfl && !b_full(&h2c->dbuf))
|
if (b_data(&h2c->dbuf) < h2c->dfl && !b_full(&h2c->dbuf))
|
||||||
return NULL; // incomplete frame
|
return NULL; // incomplete frame
|
||||||
|
|
||||||
if (h2c->flags & H2_CF_DEM_TOOMANY)
|
|
||||||
return 0; // too many cs still present
|
|
||||||
|
|
||||||
/* now either the frame is complete or the buffer is complete */
|
/* now either the frame is complete or the buffer is complete */
|
||||||
if (h2s->st != H2_SS_IDLE) {
|
if (h2s->st != H2_SS_IDLE) {
|
||||||
/* FIXME: stream already exists, this is only allowed for
|
/* FIXME: stream already exists, this is only allowed for
|
||||||
@ -1877,6 +1874,8 @@ static struct h2s *h2c_frt_handle_headers(struct h2c *h2c, struct h2s *h2s)
|
|||||||
sess_log(h2c->conn->owner);
|
sess_log(h2c->conn->owner);
|
||||||
goto conn_err;
|
goto conn_err;
|
||||||
}
|
}
|
||||||
|
else if (h2c->flags & H2_CF_DEM_TOOMANY)
|
||||||
|
goto out; // IDLE but too many cs still present
|
||||||
|
|
||||||
error = h2c_decode_headers(h2c, &rxbuf, &flags);
|
error = h2c_decode_headers(h2c, &rxbuf, &flags);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user