Skip to content

Commit eef838f

Browse files
nodejs-github-botaduh95
authored andcommitted
deps: update nghttp2 to 1.67.1
PR-URL: #59790 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
1 parent f0d81c9 commit eef838f

17 files changed

+388
-148
lines changed

deps/nghttp2/lib/CMakeLists.txt

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,29 @@ if(WIN32)
4747
set(NGHTTP2_RES ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
4848
endif()
4949

50-
set(EXPORT_SET "${PROJECT_NAME}-targets")
50+
set(NGHTTP2_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
51+
set(NGHTTP2_VERSION_CONFIG "${NGHTTP2_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
52+
set(NGHTTP2_PROJECT_CONFIG "${NGHTTP2_GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
53+
set(NGHTTP2_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
54+
set(NGHTTP2_CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
55+
set(NGHTTP2_NAMESPACE "${PROJECT_NAME}::")
56+
set(NGHTTP2_VERSION ${PROJECT_VERSION})
57+
58+
include(CMakePackageConfigHelpers)
59+
write_basic_package_version_file(
60+
"${NGHTTP2_VERSION_CONFIG}" VERSION ${NGHTTP2_VERSION} COMPATIBILITY SameMajorVersion
61+
)
62+
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.cmake.in" "${NGHTTP2_PROJECT_CONFIG}" @ONLY)
63+
64+
# Install cmake config files
65+
install(
66+
FILES "${NGHTTP2_PROJECT_CONFIG}" "${NGHTTP2_VERSION_CONFIG}"
67+
DESTINATION "${NGHTTP2_CONFIG_INSTALL_DIR}")
68+
69+
install(
70+
EXPORT "${NGHTTP2_TARGETS_EXPORT_NAME}"
71+
NAMESPACE "${NGHTTP2_NAMESPACE}"
72+
DESTINATION "${NGHTTP2_CONFIG_INSTALL_DIR}")
5173

5274
# Public shared library
5375
if(BUILD_SHARED_LIBS)
@@ -65,7 +87,11 @@ if(BUILD_SHARED_LIBS)
6587
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
6688
)
6789

68-
install(TARGETS ${SHARED_LIB} EXPORT ${EXPORT_SET})
90+
install(TARGETS ${SHARED_LIB}
91+
EXPORT ${NGHTTP2_TARGETS_EXPORT_NAME}
92+
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
93+
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
94+
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
6995
list(APPEND nghttp2_exports ${SHARED_LIB})
7096
endif()
7197

@@ -87,7 +113,9 @@ if(BUILD_STATIC_LIBS)
87113

88114
target_compile_definitions(${STATIC_LIB} PUBLIC "-DNGHTTP2_STATICLIB")
89115

90-
install(TARGETS ${STATIC_LIB} EXPORT ${EXPORT_SET})
116+
install(TARGETS ${STATIC_LIB}
117+
EXPORT ${NGHTTP2_TARGETS_EXPORT_NAME}
118+
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
91119
list(APPEND nghttp2_exports ${STATIC_LIB})
92120
endif()
93121

@@ -97,11 +125,7 @@ else()
97125
set(LIB_SELECTED ${STATIC_LIB})
98126
endif()
99127

100-
add_library(${PROJECT_NAME}::nghttp2 ALIAS ${LIB_SELECTED})
128+
add_library(nghttp2 ALIAS ${LIB_SELECTED})
101129

102130
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libnghttp2.pc"
103131
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
104-
105-
install(EXPORT ${EXPORT_SET}
106-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
107-
NAMESPACE ${PROJECT_NAME}::)

deps/nghttp2/lib/Makefile.am

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2323
SUBDIRS = includes
2424

25-
EXTRA_DIST = Makefile.msvc CMakeLists.txt version.rc.in
25+
EXTRA_DIST = Makefile.msvc CMakeLists.txt version.rc.in config.cmake.in
2626

2727
AM_CFLAGS = $(WARNCFLAGS) $(EXTRACFLAG)
2828
AM_CPPFLAGS = -I$(srcdir)/includes -I$(builddir)/includes -DBUILDING_NGHTTP2 \

deps/nghttp2/lib/Makefile.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,8 @@ LIBNGHTTP3_LIBS = @LIBNGHTTP3_LIBS@
360360
LIBNGTCP2_CFLAGS = @LIBNGTCP2_CFLAGS@
361361
LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS = @LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@
362362
LIBNGTCP2_CRYPTO_BORINGSSL_LIBS = @LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@
363+
LIBNGTCP2_CRYPTO_LIBRESSL_CFLAGS = @LIBNGTCP2_CRYPTO_LIBRESSL_CFLAGS@
364+
LIBNGTCP2_CRYPTO_LIBRESSL_LIBS = @LIBNGTCP2_CRYPTO_LIBRESSL_LIBS@
363365
LIBNGTCP2_CRYPTO_OSSL_CFLAGS = @LIBNGTCP2_CRYPTO_OSSL_CFLAGS@
364366
LIBNGTCP2_CRYPTO_OSSL_LIBS = @LIBNGTCP2_CRYPTO_OSSL_LIBS@
365367
LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS = @LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS@
@@ -494,7 +496,7 @@ top_srcdir = @top_srcdir@
494496
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
495497
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
496498
SUBDIRS = includes
497-
EXTRA_DIST = Makefile.msvc CMakeLists.txt version.rc.in
499+
EXTRA_DIST = Makefile.msvc CMakeLists.txt version.rc.in config.cmake.in
498500
AM_CFLAGS = $(WARNCFLAGS) $(EXTRACFLAG)
499501
AM_CPPFLAGS = -I$(srcdir)/includes -I$(builddir)/includes -DBUILDING_NGHTTP2 \
500502
@DEFS@

deps/nghttp2/lib/config.cmake.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
include(CMakeFindDependencyMacro)
2+
3+
include("${CMAKE_CURRENT_LIST_DIR}/@NGHTTP2_TARGETS_EXPORT_NAME@.cmake")

deps/nghttp2/lib/includes/Makefile.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ LIBNGHTTP3_LIBS = @LIBNGHTTP3_LIBS@
265265
LIBNGTCP2_CFLAGS = @LIBNGTCP2_CFLAGS@
266266
LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS = @LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@
267267
LIBNGTCP2_CRYPTO_BORINGSSL_LIBS = @LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@
268+
LIBNGTCP2_CRYPTO_LIBRESSL_CFLAGS = @LIBNGTCP2_CRYPTO_LIBRESSL_CFLAGS@
269+
LIBNGTCP2_CRYPTO_LIBRESSL_LIBS = @LIBNGTCP2_CRYPTO_LIBRESSL_LIBS@
268270
LIBNGTCP2_CRYPTO_OSSL_CFLAGS = @LIBNGTCP2_CRYPTO_OSSL_CFLAGS@
269271
LIBNGTCP2_CRYPTO_OSSL_LIBS = @LIBNGTCP2_CRYPTO_OSSL_LIBS@
270272
LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS = @LIBNGTCP2_CRYPTO_QUICTLS_CFLAGS@

deps/nghttp2/lib/includes/nghttp2/nghttp2.h

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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,
24452447
int lib_error_code, const char *msg,
24462448
size_t len, void *user_data);
24472449

2450+
/**
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+
24482459
struct nghttp2_session_callbacks;
24492460

24502461
/**
@@ -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
*/
26682679
NGHTTP2_EXTERN void nghttp2_session_callbacks_set_on_invalid_header_callback2(
@@ -2833,6 +2844,18 @@ NGHTTP2_EXTERN void nghttp2_session_callbacks_set_error_callback(
28332844
NGHTTP2_EXTERN void nghttp2_session_callbacks_set_error_callback2(
28342845
nghttp2_session_callbacks *cbs, nghttp2_error_callback2 error_callback2);
28352846

2847+
/**
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,
32183241
NGHTTP2_EXTERN void nghttp2_option_set_max_continuations(nghttp2_option *option,
32193242
size_t val);
32203243

3244+
/**
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
*

deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
* @macro
3030
* Version number of the nghttp2 library release
3131
*/
32-
#define NGHTTP2_VERSION "1.66.0"
32+
#define NGHTTP2_VERSION "1.67.1"
3333

3434
/**
3535
* @macro
3636
* Numerical representation of the version number of the nghttp2 library
3737
* release. This is a 24 bit number with 8 bits for major number, 8 bits
3838
* for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203.
3939
*/
40-
#define NGHTTP2_VERSION_NUM 0x014200
40+
#define NGHTTP2_VERSION_NUM 0x014301
4141

4242
#endif /* NGHTTP2VER_H */

deps/nghttp2/lib/nghttp2_callbacks.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,8 @@ void nghttp2_session_callbacks_set_error_callback2(
201201
nghttp2_session_callbacks *cbs, nghttp2_error_callback2 error_callback2) {
202202
cbs->error_callback2 = error_callback2;
203203
}
204+
205+
void nghttp2_session_callbacks_set_rand_callback(
206+
nghttp2_session_callbacks *cbs, nghttp2_rand_callback rand_callback) {
207+
cbs->rand_callback = rand_callback;
208+
}

deps/nghttp2/lib/nghttp2_callbacks.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ struct nghttp2_session_callbacks {
151151
nghttp2_on_extension_chunk_recv_callback on_extension_chunk_recv_callback;
152152
nghttp2_error_callback error_callback;
153153
nghttp2_error_callback2 error_callback2;
154+
nghttp2_rand_callback rand_callback;
154155
};
155156

156157
#endif /* NGHTTP2_CALLBACKS_H */

deps/nghttp2/lib/nghttp2_int.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ typedef enum {
5252
* Unlike NGHTTP2_ERR_IGN_HTTP_HEADER, this does not invoke
5353
* nghttp2_on_invalid_header_callback.
5454
*/
55-
NGHTTP2_ERR_REMOVE_HTTP_HEADER = -106
55+
NGHTTP2_ERR_REMOVE_HTTP_HEADER = -106,
56+
/*
57+
* Cancel pushed stream.
58+
*/
59+
NGHTTP2_ERR_PUSH_CANCEL = -107,
5660
} nghttp2_internal_error;
5761

5862
#endif /* NGHTTP2_INT_H */

0 commit comments

Comments
 (0)