annotate src/event/quic/ngx_event_quic_socket.h @ 9165:cdda286c0f1b

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.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 10 Oct 2023 15:13:39 +0300
parents c389200e10a2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8763
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2 /*
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
3 * Copyright (C) Nginx, Inc.
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 */
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7 #ifndef _NGX_EVENT_QUIC_SOCKET_H_INCLUDED_
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8 #define _NGX_EVENT_QUIC_SOCKET_H_INCLUDED_
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 #include <ngx_config.h>
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12 #include <ngx_core.h>
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15 ngx_int_t ngx_quic_open_sockets(ngx_connection_t *c,
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
16 ngx_quic_connection_t *qc, ngx_quic_header_t *pkt);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17 void ngx_quic_close_sockets(ngx_connection_t *c);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
18
8955
32daba3aabb2 QUIC: got rid of ngx_quic_create_temp_socket().
Vladimir Homutov <vl@nginx.com>
parents: 8911
diff changeset
19 ngx_quic_socket_t *ngx_quic_create_socket(ngx_connection_t *c,
8763
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
20 ngx_quic_connection_t *qc);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
21 ngx_int_t ngx_quic_listen(ngx_connection_t *c, ngx_quic_connection_t *qc,
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
22 ngx_quic_socket_t *qsock);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
23 void ngx_quic_close_socket(ngx_connection_t *c, ngx_quic_socket_t *qsock);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
24
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
25 ngx_quic_socket_t *ngx_quic_find_socket(ngx_connection_t *c, uint64_t seqnum);
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
26
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
27
4117aa7fa38e QUIC: connection migration.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
28 #endif /* _NGX_EVENT_QUIC_SOCKET_H_INCLUDED_ */