Skip to content

Commit afed68e

Browse files
deps: update nghttp3 to 1.12.0
1 parent cff138c commit afed68e

File tree

12 files changed

+2232
-58
lines changed

12 files changed

+2232
-58
lines changed

deps/ngtcp2/nghttp3/lib/includes/nghttp3/nghttp3.h

Lines changed: 126 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,59 @@ extern "C" {
8181
*/
8282
typedef ptrdiff_t nghttp3_ssize;
8383

84+
/**
85+
* @typedef
86+
*
87+
* :type:`nghttp3_tstamp` is a timestamp with nanosecond resolution.
88+
* ``UINT64_MAX`` is an invalid value, and it is often used to
89+
* indicate that no value is set. This type is available since
90+
* v1.12.0.
91+
*/
92+
typedef uint64_t nghttp3_tstamp;
93+
94+
/**
95+
* @typedef
96+
*
97+
* :type:`nghttp3_duration` is a period of time in nanosecond
98+
* resolution. ``UINT64_MAX`` is an invalid value, and it is often
99+
* used to indicate that no value is set. This type is available
100+
* since v1.12.0.
101+
*/
102+
typedef uint64_t nghttp3_duration;
103+
104+
/**
105+
* @macro
106+
*
107+
* :macro:`NGHTTP3_NANOSECONDS` is a count of tick which corresponds
108+
* to 1 nanosecond. This macro is available since v1.12.0.
109+
*/
110+
#define NGHTTP3_NANOSECONDS ((nghttp3_duration)1ULL)
111+
112+
/**
113+
* @macro
114+
*
115+
* :macro:`NGHTTP3_MICROSECONDS` is a count of tick which corresponds
116+
* to 1 microsecond. This macro is available since v1.12.0.
117+
*/
118+
#define NGHTTP3_MICROSECONDS ((nghttp3_duration)(1000ULL * NGHTTP3_NANOSECONDS))
119+
120+
/**
121+
* @macro
122+
*
123+
* :macro:`NGHTTP3_MILLISECONDS` is a count of tick which corresponds
124+
* to 1 millisecond. This macro is available since v1.12.0.
125+
*/
126+
#define NGHTTP3_MILLISECONDS \
127+
((nghttp3_duration)(1000ULL * NGHTTP3_MICROSECONDS))
128+
129+
/**
130+
* @macro
131+
*
132+
* :macro:`NGHTTP3_SECONDS` is a count of tick which corresponds to 1
133+
* second. This macro is available since v1.12.0.
134+
*/
135+
#define NGHTTP3_SECONDS ((nghttp3_duration)(1000ULL * NGHTTP3_MILLISECONDS))
136+
84137
/**
85138
* @macro
86139
*
@@ -264,6 +317,14 @@ typedef ptrdiff_t nghttp3_ssize;
264317
* allowed.
265318
*/
266319
#define NGHTTP3_ERR_H3_STREAM_CREATION_ERROR -609
320+
/**
321+
* @macro
322+
*
323+
* :macro:`NGHTTP3_ERR_H3_EXCESSIVE_LOAD` indicates that a local
324+
* endpoint detected that its remote endpoint is exhibiting a behavior
325+
* that might generating excessive load.
326+
*/
327+
#define NGHTTP3_ERR_H3_EXCESSIVE_LOAD -610
267328
/**
268329
* @macro
269330
*
@@ -1638,7 +1699,8 @@ typedef struct nghttp3_conn nghttp3_conn;
16381699

16391700
#define NGHTTP3_SETTINGS_V1 1
16401701
#define NGHTTP3_SETTINGS_V2 2
1641-
#define NGHTTP3_SETTINGS_VERSION NGHTTP3_SETTINGS_V2
1702+
#define NGHTTP3_SETTINGS_V3 3
1703+
#define NGHTTP3_SETTINGS_VERSION NGHTTP3_SETTINGS_V3
16421704

16431705
/**
16441706
* @struct
@@ -1700,6 +1762,24 @@ typedef struct nghttp3_settings {
17001762
* server uses this field. This field is available since v1.11.0.
17011763
*/
17021764
const nghttp3_vec *origin_list;
1765+
/* The following fields have been added since NGHTTP3_SETTINGS_V3. */
1766+
/**
1767+
* :member:`glitch_ratelim_burst` is the maximum number of tokens
1768+
* available to "glitch" rate limiter. "glitch" is a suspicious
1769+
* activity from a remote endpoint. If detected, certain amount of
1770+
* tokens are consumed. If no tokens are available to consume, the
1771+
* connection is closed. The rate of token generation is specified
1772+
* by :member:`glitch_ratelim_rate`. This feature is enabled only
1773+
* when `nghttp3_conn_read_stream2` is used. This field has been
1774+
* available since v1.12.0.
1775+
*/
1776+
uint64_t glitch_ratelim_burst;
1777+
/**
1778+
* :member:`glitch_ratelim_rate` is the number of tokens generated
1779+
* per second. See :member:`glitch_ratelim_burst` for "glitch" rate
1780+
* limiter. This field has been available since v1.12.0.
1781+
*/
1782+
uint64_t glitch_ratelim_rate;
17031783
} nghttp3_settings;
17041784

17051785
/**
@@ -2113,6 +2193,10 @@ typedef struct nghttp3_callbacks {
21132193
* <nghttp3_settings.qpack_blocked_streams>` = 0
21142194
* - :member:`enable_connect_protocol
21152195
* <nghttp3_settings.enable_connect_protocol>` = 0
2196+
* - :member:`glitch_ratelim_burst
2197+
* <nghttp3_settings.glitch_ratelim_burst>` = 1000
2198+
* - :member:`glitch_ratelim_rate
2199+
* <nghttp3_settings.glitch_ratelim_rate>` = 33
21162200
*/
21172201
NGHTTP3_EXTERN void
21182202
nghttp3_settings_default_versioned(int settings_version,
@@ -2209,6 +2293,11 @@ NGHTTP3_EXTERN int nghttp3_conn_bind_qpack_streams(nghttp3_conn *conn,
22092293
/**
22102294
* @function
22112295
*
2296+
* .. warning::
2297+
*
2298+
* Deprecated since v1.12.0. Use `nghttp3_conn_read_stream2`
2299+
* instead.
2300+
*
22122301
* `nghttp3_conn_read_stream` reads data |src| of length |srclen| on
22132302
* stream identified by |stream_id|. It returns the number of bytes
22142303
* consumed. The "consumed" means that application can increase flow
@@ -2237,6 +2326,42 @@ NGHTTP3_EXTERN nghttp3_ssize nghttp3_conn_read_stream(nghttp3_conn *conn,
22372326
const uint8_t *src,
22382327
size_t srclen, int fin);
22392328

2329+
/**
2330+
* @function
2331+
*
2332+
* `nghttp3_conn_read_stream2` reads data |src| of length |srclen| on
2333+
* stream identified by |stream_id|. It returns the number of bytes
2334+
* consumed. The "consumed" means that application can increase flow
2335+
* control credit (both stream and connection) of underlying QUIC
2336+
* connection by that amount. It does not include the amount of data
2337+
* carried by DATA frame which contains application data (excluding
2338+
* any control or QPACK unidirectional streams). See
2339+
* :type:`nghttp3_recv_data` to handle those bytes. If |fin| is
2340+
* nonzero, this is the last data from remote endpoint in this stream.
2341+
* |ts| is the current timestamp, and must be non-decreasing. It
2342+
* should be obtained from the clock that is steadily increasing.
2343+
*
2344+
* This function returns the number of bytes consumed, or one of the
2345+
* following negative error codes:
2346+
*
2347+
* :macro:`NGHTTP3_ERR_NOMEM`
2348+
* Out of memory.
2349+
* :macro:`NGHTTP3_ERR_CALLBACK_FAILURE`
2350+
* User callback failed.
2351+
*
2352+
* It may return the other error codes. The negative error code means
2353+
* that |conn| encountered a connection error, and the connection must
2354+
* be closed. Calling nghttp3 API other than `nghttp3_conn_del`
2355+
* causes undefined behavior.
2356+
*
2357+
* This function is available since v1.12.0.
2358+
*/
2359+
NGHTTP3_EXTERN nghttp3_ssize nghttp3_conn_read_stream2(nghttp3_conn *conn,
2360+
int64_t stream_id,
2361+
const uint8_t *src,
2362+
size_t srclen, int fin,
2363+
nghttp3_tstamp ts);
2364+
22402365
/**
22412366
* @function
22422367
*

deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*
3232
* Version number of the nghttp3 library release.
3333
*/
34-
#define NGHTTP3_VERSION "1.11.0"
34+
#define NGHTTP3_VERSION "1.12.0"
3535

3636
/**
3737
* @macro
@@ -41,6 +41,6 @@
4141
* number, 8 bits for minor and 8 bits for patch. Version 1.2.3
4242
* becomes 0x010203.
4343
*/
44-
#define NGHTTP3_VERSION_NUM 0x010b00
44+
#define NGHTTP3_VERSION_NUM 0x010c00
4545

4646
#endif /* !defined(NGHTTP3_VERSION_H) */

0 commit comments

Comments
 (0)