aboutsummaryrefslogtreecommitdiff
path: root/src/http/v2/ngx_http_v2.h
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2023-10-10 15:13:39 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2023-10-10 15:13:39 +0300
commit6ceef192e7af1c507826ac38a2d43f08bf265fb9 (patch)
tree3320e3e0af821ce3f3be15469420885cf7141b82 /src/http/v2/ngx_http_v2.h
parentc37fdcdd1e1527d2c98cc68a978cf928589c7330 (diff)
downloadnginx-6ceef192e7af1c507826ac38a2d43f08bf265fb9.tar.gz
nginx-6ceef192e7af1c507826ac38a2d43f08bf265fb9.zip
HTTP/2: per-iteration stream handling limit.
To ensure that attempts to flood servers with many streams are detected early, a limit of no more than 2 * max_concurrent_streams new streams per one event loop iteration was introduced. This limit is applied even if max_concurrent_streams is not yet reached - for example, if corresponding streams are handled synchronously or reset. Further, refused streams are now limited to maximum of max_concurrent_streams and 100, similarly to priority_limit initial value, providing some tolerance to clients trying to open several streams at the connection start, yet low tolerance to flooding attempts.
Diffstat (limited to 'src/http/v2/ngx_http_v2.h')
-rw-r--r--src/http/v2/ngx_http_v2.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/http/v2/ngx_http_v2.h b/src/http/v2/ngx_http_v2.h
index cb9014ccf..6751b3026 100644
--- a/src/http/v2/ngx_http_v2.h
+++ b/src/http/v2/ngx_http_v2.h
@@ -131,6 +131,8 @@ struct ngx_http_v2_connection_s {
ngx_uint_t processing;
ngx_uint_t frames;
ngx_uint_t idle;
+ ngx_uint_t new_streams;
+ ngx_uint_t refused_streams;
ngx_uint_t priority_limit;
size_t send_window;