deps: update nghttp2 to 1.67.1 · nodejs/node@eef838f
@@ -2039,18 +2039,19 @@ typedef int (*nghttp2_on_header_callback2)(nghttp2_session *session,
20392039/**
20402040 * @functypedef
20412041 *
2042- * Callback function invoked when a invalid header name/value pair is
2042+ * Callback function invoked when an invalid header name/value pair is
20432043 * received for the |frame|.
20442044 *
20452045 * The parameter and behaviour are similar to
20462046 * :type:`nghttp2_on_header_callback`. The difference is that this
2047- * callback is only invoked when a invalid header name/value pair is
2048- * received which is treated as stream error if this callback is not
2049- * set. Only invalid regular header field are passed to this
2050- * callback. In other words, invalid pseudo header field is not
2051- * passed to this callback. Also header fields which includes upper
2052- * cased latter are also treated as error without passing them to this
2053- * callback.
2047+ * callback is only invoked when an invalid header name/value pair is
2048+ * received which is treated as stream error if this callback returns
2049+ * :enum:`nghttp2_error.NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE` and
2050+ * :type:`nghttp2_on_invalid_header_callback2` is not set. Only
2051+ * invalid regular header field are passed to this callback. In other
2052+ * words, invalid pseudo header field is not passed to this callback.
2053+ * Also header fields which includes upper cased latter are also
2054+ * treated as error without passing them to this callback.
20542055 *
20552056 * This callback is only considered if HTTP messaging validation is
20562057 * turned on (which is on by default, see
@@ -2076,17 +2077,18 @@ typedef int (*nghttp2_on_invalid_header_callback)(
20762077/**
20772078 * @functypedef
20782079 *
2079- * Callback function invoked when a invalid header name/value pair is
2080+ * Callback function invoked when an invalid header name/value pair is
20802081 * received for the |frame|.
20812082 *
20822083 * The parameter and behaviour are similar to
20832084 * :type:`nghttp2_on_header_callback2`. The difference is that this
2084- * callback is only invoked when a invalid header name/value pair is
2085- * received which is silently ignored if this callback is not set.
2086- * Only invalid regular header field are passed to this callback. In
2087- * other words, invalid pseudo header field is not passed to this
2088- * callback. Also header fields which includes upper cased latter are
2089- * also treated as error without passing them to this callback.
2085+ * callback is only invoked when an invalid header name/value pair is
2086+ * received which is silently ignored if neither this callback nor
2087+ * :type:`nghttp2_on_invalid_header_callback` is set. Only invalid
2088+ * regular header field are passed to this callback. In other words,
2089+ * invalid pseudo header field is not passed to this callback. Also
2090+ * header fields which includes upper cased latter are also treated as
2091+ * error without passing them to this callback.
20902092 *
20912093 * This callback is only considered if HTTP messaging validation is
20922094 * turned on (which is on by default, see
@@ -2445,6 +2447,15 @@ typedef int (*nghttp2_error_callback2)(nghttp2_session *session,
24452447int lib_error_code, const char *msg,
24462448size_t len, void *user_data);
244724492450+/**
2451+ * @functypedef
2452+ *
2453+ * Callback function invoked when unpredictable data of |destlen|
2454+ * bytes are needed. The implementation must write unpredictable data
2455+ * of |destlen| bytes into the buffer pointed by |dest|.
2456+ */
2457+typedef void (*nghttp2_rand_callback)(uint8_t *dest, size_t destlen);
2458+24482459struct nghttp2_session_callbacks;
2449246024502461/**
@@ -2649,7 +2660,7 @@ NGHTTP2_EXTERN void nghttp2_session_callbacks_set_on_header_callback2(
26492660/**
26502661 * @function
26512662 *
2652- * Sets callback function invoked when a invalid header name/value
2663+ * Sets callback function invoked when an invalid header name/value
26532664 * pair is received. If both
26542665 * `nghttp2_session_callbacks_set_on_invalid_header_callback()` and
26552666 * `nghttp2_session_callbacks_set_on_invalid_header_callback2()` are
@@ -2662,7 +2673,7 @@ NGHTTP2_EXTERN void nghttp2_session_callbacks_set_on_invalid_header_callback(
26622673/**
26632674 * @function
26642675 *
2665- * Sets callback function invoked when a invalid header name/value
2676+ * Sets callback function invoked when an invalid header name/value
26662677 * pair is received.
26672678 */
26682679NGHTTP2_EXTERN void nghttp2_session_callbacks_set_on_invalid_header_callback2(
@@ -2833,6 +2844,18 @@ NGHTTP2_EXTERN void nghttp2_session_callbacks_set_error_callback(
28332844NGHTTP2_EXTERN void nghttp2_session_callbacks_set_error_callback2(
28342845nghttp2_session_callbacks *cbs, nghttp2_error_callback2 error_callback2);
283528462847+/**
2848+ * @function
2849+ *
2850+ * Sets callback function invoked when unpredictable data is needed.
2851+ * Although this callback is optional due to the backward
2852+ * compatibility, it is recommended to specify it to harden the
2853+ * runtime behavior against suspicious activities of a remote
2854+ * endpoint.
2855+ */
2856+NGHTTP2_EXTERN void nghttp2_session_callbacks_set_rand_callback(
2857+nghttp2_session_callbacks *cbs, nghttp2_rand_callback rand_callback);
2858+28362859/**
28372860 * @functypedef
28382861 *
@@ -3218,6 +3241,23 @@ nghttp2_option_set_stream_reset_rate_limit(nghttp2_option *option,
32183241NGHTTP2_EXTERN void nghttp2_option_set_max_continuations(nghttp2_option *option,
32193242size_t val);
322032433244+/**
3245+ * @function
3246+ *
3247+ * This function sets the rate limit for the "glitches", the
3248+ * suspicious activities from a remote endpoint. It is a token-bucket
3249+ * based rate limiter. |burst| specifies the number of tokens that is
3250+ * initially available. The maximum number of tokens is capped to
3251+ * this value. |rate| specifies the number of tokens that are
3252+ * regenerated per second. When a suspicious activity is detected,
3253+ * some amount of tokens are consumed. If there is no token
3254+ * available, GOAWAY is sent to tear down the connection. |burst| and
3255+ * |rate| default to 1000 and 33 respectively.
3256+ */
3257+NGHTTP2_EXTERN void nghttp2_option_set_glitch_rate_limit(nghttp2_option *option,
3258+uint64_t burst,
3259+uint64_t rate);
3260+32213261/**
32223262 * @function
32233263 *