diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2022-12-02 12:06:10 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2022-12-02 12:06:10 +0300 |
commit | 3ff4bfbbd57992ba4c227aea23c74a2cd11847ad (patch) | |
tree | f23aab4d0b8b2d84158ad57da4853453c88da2bd /contrib/libs/nghttp2 | |
parent | 7c06d7160fb27755c764763cb9fd1bf917d1c166 (diff) | |
download | ydb-3ff4bfbbd57992ba4c227aea23c74a2cd11847ad.tar.gz |
Update contrib/libs/nghttp2 to 1.51.0
Diffstat (limited to 'contrib/libs/nghttp2')
-rw-r--r-- | contrib/libs/nghttp2/AUTHORS | 1 | ||||
-rw-r--r-- | contrib/libs/nghttp2/README.rst | 46 | ||||
-rw-r--r-- | contrib/libs/nghttp2/config.h | 6 | ||||
-rw-r--r-- | contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h | 6 | ||||
-rw-r--r-- | contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h | 4 | ||||
-rw-r--r-- | contrib/libs/nghttp2/lib/nghttp2_net.h | 8 |
6 files changed, 35 insertions, 36 deletions
diff --git a/contrib/libs/nghttp2/AUTHORS b/contrib/libs/nghttp2/AUTHORS index 8eaf0efd40..83a02db288 100644 --- a/contrib/libs/nghttp2/AUTHORS +++ b/contrib/libs/nghttp2/AUTHORS @@ -96,6 +96,7 @@ Pedro Santos Peeyush Aggarwal Peter Wu Piotr Sikora +PufferOverflow Raul Gutierrez Segales Remo E Renaud diff --git a/contrib/libs/nghttp2/README.rst b/contrib/libs/nghttp2/README.rst index 22d54810d2..5387db58e3 100644 --- a/contrib/libs/nghttp2/README.rst +++ b/contrib/libs/nghttp2/README.rst @@ -14,9 +14,11 @@ An HPACK encoder and decoder are available as a public API. Development Status ------------------ -We have implemented `RFC 7540 <https://tools.ietf.org/html/rfc7540>`_ -HTTP/2 and `RFC 7541 <https://tools.ietf.org/html/rfc7541>`_ HPACK - -Header Compression for HTTP/2 +nghttp2 was originally developed based on `RFC 7540 +<https://tools.ietf.org/html/rfc7540>`_ HTTP/2 and `RFC 7541 +<https://tools.ietf.org/html/rfc7541>`_ HPACK - Header Compression for +HTTP/2. Now we are updating our code to implement `RFC 9113 +<https://datatracker.ietf.org/doc/html/rfc9113>`_. The nghttp2 code base was forked from the spdylay (https://github.com/tatsuhiro-t/spdylay) project. @@ -114,16 +116,6 @@ The Python bindings (deprecated) require the following packages: * python >= 3.8 * python-setuptools -If you are using Ubuntu 16.04 LTS (Xenial Xerus) or Debian 8 (jessie) -and above, run the following to install the required packages: - -.. code-block:: text - - sudo apt-get install g++ make binutils autoconf automake autotools-dev libtool pkg-config \ - zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev \ - libc-ares-dev libjemalloc-dev libsystemd-dev \ - cython python3-dev python-setuptools - To enable mruby support for nghttpx, `mruby <https://github.com/mruby/mruby>`_ is required. We need to build mruby with C++ ABI explicitly turned on, and probably need other @@ -148,10 +140,10 @@ To enable the experimental HTTP/3 support for h2load and nghttpx, the following libraries are required: * `OpenSSL with QUIC support - <https://github.com/quictls/openssl/tree/OpenSSL_1_1_1q+quic>`_; or + <https://github.com/quictls/openssl/tree/OpenSSL_1_1_1s+quic>`_; or `BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ (commit - 04989786e9ab16cef5261bbd05a2b1a8cb312dbf) -* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 0.9.0 + b2536a2c6234496ef609e7c909936bbf828dac6d) +* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 0.10.0 * `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ >= 0.7.0 Use ``--enable-http3`` configure option to enable HTTP/3 feature for @@ -167,7 +159,7 @@ Use ``--with-libbpf`` configure option to build eBPF program. libelf-dev is needed to build libbpf. For Ubuntu 20.04, you can build libbpf from `the source code -<https://github.com/libbpf/libbpf/releases/tag/v1.0.0>`_. nghttpx +<https://github.com/libbpf/libbpf/releases/tag/v1.0.1>`_. nghttpx requires eBPF program for reloading its configuration and hot swapping its executable. @@ -221,6 +213,18 @@ language features. responsible to specify the correct values to these variables. For complete list of these variables, run ``./configure -h``. +If you are using Ubuntu 22.04 LTS, run the following to install the +required packages: + +.. code-block:: text + + sudo apt-get install g++ clang make binutils autoconf automake \ + autotools-dev libtool pkg-config \ + zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev \ + libevent-dev libjansson-dev \ + libc-ares-dev libjemalloc-dev libsystemd-dev \ + ruby-dev bison libelf-dev + Building nghttp2 from release tar archive ----------------------------------------- @@ -352,7 +356,7 @@ Build custom OpenSSL: .. code-block:: text - $ git clone --depth 1 -b OpenSSL_1_1_1q+quic https://github.com/quictls/openssl + $ git clone --depth 1 -b OpenSSL_1_1_1s+quic https://github.com/quictls/openssl $ cd openssl $ ./config --prefix=$PWD/build --openssldir=/etc/ssl $ make -j$(nproc) @@ -375,7 +379,7 @@ Build ngtcp2: .. code-block:: text - $ git clone --depth 1 -b v0.9.0 https://github.com/ngtcp2/ngtcp2 + $ git clone --depth 1 -b v0.11.0 https://github.com/ngtcp2/ngtcp2 $ cd ngtcp2 $ autoreconf -i $ ./configure --prefix=$PWD/build --enable-lib-only \ @@ -389,7 +393,7 @@ from source: .. code-block:: text - $ git clone --depth 1 -b v1.0.0 https://github.com/libbpf/libbpf + $ git clone --depth 1 -b v1.0.1 https://github.com/libbpf/libbpf $ cd libbpf $ PREFIX=$PWD/build make -C src install $ cd .. @@ -404,7 +408,7 @@ Build nghttp2: $ autoreconf -i $ ./configure --with-mruby --with-neverbleed --enable-http3 --with-libbpf \ --disable-python-bindings \ - CC=clang-12 CXX=clang++-12 \ + CC=clang-14 CXX=clang++-14 \ PKG_CONFIG_PATH="$PWD/../openssl/build/lib/pkgconfig:$PWD/../nghttp3/build/lib/pkgconfig:$PWD/../ngtcp2/build/lib/pkgconfig:$PWD/../libbpf/build/lib64/pkgconfig" \ LDFLAGS="$LDFLAGS -Wl,-rpath,$PWD/../openssl/build/lib -Wl,-rpath,$PWD/../libbpf/build/lib64" $ make -j$(nproc) diff --git a/contrib/libs/nghttp2/config.h b/contrib/libs/nghttp2/config.h index ef19867cd4..1ee0bf07af 100644 --- a/contrib/libs/nghttp2/config.h +++ b/contrib/libs/nghttp2/config.h @@ -259,7 +259,7 @@ #define PACKAGE_NAME "nghttp2" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "nghttp2 1.50.0" +#define PACKAGE_STRING "nghttp2 1.51.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "nghttp2" @@ -268,7 +268,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.50.0" +#define PACKAGE_VERSION "1.51.0" /* The size of `int *', as computed by sizeof. */ #define SIZEOF_INT_P 8 @@ -373,7 +373,7 @@ /* Version number of package */ -#define VERSION "1.50.0" +#define VERSION "1.51.0" /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ diff --git a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h index 61a14d99eb..65077dd516 100644 --- a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h +++ b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2.h @@ -1430,12 +1430,6 @@ typedef ssize_t (*nghttp2_recv_callback)(nghttp2_session *session, uint8_t *buf, * respectively. The header name/value pairs are emitted via * :type:`nghttp2_on_header_callback`. * - * For HEADERS, PUSH_PROMISE and DATA frames, this callback may be - * called after stream is closed (see - * :type:`nghttp2_on_stream_close_callback`). The application should - * check that stream is still alive using its own stream management or - * :func:`nghttp2_session_get_stream_user_data()`. - * * Only HEADERS and DATA frame can signal the end of incoming data. * If ``frame->hd.flags & NGHTTP2_FLAG_END_STREAM`` is nonzero, the * |frame| is the last frame from the remote peer in this stream. diff --git a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h index 0e503610ba..6fe61752af 100644 --- a/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h +++ b/contrib/libs/nghttp2/lib/includes/nghttp2/nghttp2ver.h @@ -29,7 +29,7 @@ * @macro * Version number of the nghttp2 library release */ -#define NGHTTP2_VERSION "1.50.0" +#define NGHTTP2_VERSION "1.51.0" /** * @macro @@ -37,6 +37,6 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ -#define NGHTTP2_VERSION_NUM 0x013200 +#define NGHTTP2_VERSION_NUM 0x013300 #endif /* NGHTTP2VER_H */ diff --git a/contrib/libs/nghttp2/lib/nghttp2_net.h b/contrib/libs/nghttp2/lib/nghttp2_net.h index 345f6c834f..521f98143e 100644 --- a/contrib/libs/nghttp2/lib/nghttp2_net.h +++ b/contrib/libs/nghttp2/lib/nghttp2_net.h @@ -71,9 +71,9 @@ STIN uint16_t htons(uint16_t hostshort) { STIN uint32_t ntohl(uint32_t netlong) { uint32_t res; unsigned char *p = (unsigned char *)&netlong; - res = *p++ << 24; - res += *p++ << 16; - res += *p++ << 8; + res = (uint32_t)(*p++ << 24); + res += (uint32_t)(*p++ << 16); + res += (uint32_t)(*p++ << 8); res += *p; return res; } @@ -81,7 +81,7 @@ STIN uint32_t ntohl(uint32_t netlong) { STIN uint16_t ntohs(uint16_t netshort) { uint16_t res; unsigned char *p = (unsigned char *)&netshort; - res = *p++ << 8; + res = (uint16_t)(*p++ << 8); res += *p; return res; } |