mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +02:00
BUG/MINOR: mux-h2: do not report available outgoing streams after GOAWAY
The calculation of available outgoing H2 streams was improved by commit d64a3ebe6 ("BUG/MINOR: mux-h2: always check the stream ID limit in h2_avail_streams()"), but it still is incorrect because RFC7540#6.8 specifically forbids the creation of new streams after a GOAWAY frame was received. Thus we must not mark the connection as available anymore in order to be able to handle a graceful shutdown. This needs to be backported to 1.9.
This commit is contained in:
parent
888d5678f7
commit
6afec46ba3
@ -415,6 +415,12 @@ static int h2_avail_streams(struct connection *conn)
|
||||
struct h2c *h2c = conn->ctx;
|
||||
int ret1, ret2;
|
||||
|
||||
/* RFC7540#6.8: Receivers of a GOAWAY frame MUST NOT open additional
|
||||
* streams on the connection.
|
||||
*/
|
||||
if (h2c->last_sid >= 0)
|
||||
return 0;
|
||||
|
||||
/* XXX Should use the negociated max concurrent stream nb instead of the conf value */
|
||||
ret1 = h2_settings_max_concurrent_streams - h2c->nb_streams;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user