Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nghttp2 for openSUSE:Factory checked in at 2022-10-01 17:41:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nghttp2 (Old) and /work/SRC/openSUSE:Factory/.nghttp2.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nghttp2" Sat Oct 1 17:41:41 2022 rev:69 rq:1006322 version:1.50.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nghttp2/nghttp2.changes 2022-08-24 15:10:51.572486946 +0200 +++ /work/SRC/openSUSE:Factory/.nghttp2.new.2275/nghttp2.changes 2022-10-01 17:41:44.841516032 +0200 @@ -1,0 +2,15 @@ +Sat Sep 24 11:21:43 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 1.50.0: + * https://nghttp2.org/blog/2022/09/21/nghttp2-v1-50-0/ + This release adds + nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation which disables + checking leading and trailing white spaces against HTTP field value. + +------------------------------------------------------------------- +Fri Sep 23 15:38:24 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- disable asio by default as it is deprecated by upstream and + will be removed in the next release + +------------------------------------------------------------------- Old: ---- nghttp2-1.49.0.tar.xz New: ---- nghttp2-1.50.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nghttp2.spec ++++++ --- /var/tmp/diff_new_pack.kKyS4P/_old 2022-10-01 17:41:45.461517162 +0200 +++ /var/tmp/diff_new_pack.kKyS4P/_new 2022-10-01 17:41:45.465517170 +0200 @@ -1,7 +1,7 @@ # # spec file for package nghttp2 # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -28,8 +28,11 @@ %define psuffix %{nil} %bcond_with python %endif +# libnghttp2_asio has been deprecated in this repository due to maintenance +# issue and will be removed at the end of 2022 +%bcond_with asio Name: nghttp2%{psuffix} -Version: 1.49.0 +Version: 1.50.0 Release: 0 Summary: Implementation of Hypertext Transfer Protocol version 2 in C License: MIT @@ -147,7 +150,7 @@ %configure \ --disable-static \ --disable-silent-rules \ - --enable-asio-lib \ + %{?with_asio:--enable-asio-lib} %{!?with_asio: --disable-asio-lib} \ --enable-app \ %if %{with python} --enable-python-bindings \ @@ -186,10 +189,12 @@ %if !%{with python} %post -n %{soname}-%{sover} -p /sbin/ldconfig -%post -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig %postun -n %{soname}-%{sover} -p /sbin/ldconfig +%if %{with asio} +%post -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig %postun -n %{soname_asio}%{sover_asio} -p /sbin/ldconfig %endif +%endif %if %{with python} %files -n python3-nghttp2 @@ -209,21 +214,23 @@ %license COPYING %{_libdir}/%{soname}.so.%{sover}* -%files -n %{soname_asio}%{sover_asio} -%license COPYING -%{_libdir}/%{soname_asio}.so.%{sover_asio}* - %files -n %{soname}-devel %dir %{_includedir}/%{name}/ %{_includedir}/%{name}/%{name}*.h %{_libdir}/%{soname}.so %{_libdir}/pkgconfig/%{soname}.pc +%if %{with asio} +%files -n %{soname_asio}%{sover_asio} +%license COPYING +%{_libdir}/%{soname_asio}.so.%{sover_asio}* + %files -n %{soname_asio}-devel %dir %{_includedir}/%{name}/ %{_includedir}/%{name}/asio_http2*.h %{_libdir}/%{soname_asio}.so %{_libdir}/pkgconfig/%{soname_asio}.pc %endif +%endif %changelog ++++++ nghttp2-1.49.0.tar.xz -> nghttp2-1.50.0.tar.xz ++++++ ++++ 1632 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/AUTHORS new/nghttp2-1.50.0/AUTHORS --- old/nghttp2-1.49.0/AUTHORS 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/AUTHORS 2022-09-21 10:18:55.000000000 +0200 @@ -103,6 +103,7 @@ Richard Wolfert Rick Lei Ross Smith II +Rudi Heitbaum Ryo Ota Scott Mitchell Sebastiaan Deckers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/CMakeLists.txt new/nghttp2-1.50.0/CMakeLists.txt --- old/nghttp2-1.49.0/CMakeLists.txt 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/CMakeLists.txt 2022-09-21 10:18:55.000000000 +0200 @@ -24,13 +24,13 @@ cmake_minimum_required(VERSION 3.0) # XXX using 1.8.90 instead of 1.9.0-DEV -project(nghttp2 VERSION 1.49.0) +project(nghttp2 VERSION 1.50.0) # See versioning rule: # https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -set(LT_CURRENT 37) +set(LT_CURRENT 38) set(LT_REVISION 0) -set(LT_AGE 23) +set(LT_AGE 24) set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) include(Version) @@ -206,7 +206,7 @@ endif() check_symbol_exists(SSL_is_quic "openssl/ssl.h" HAVE_SSL_IS_QUIC) if(NOT HAVE_SSL_IS_QUIC) - message(WARNING "OpenSSL in ${OPENSSL_LIBRARIES} dose not have SSL_is_quic. HTTP/3 support cannot be enabled") + message(WARNING "OpenSSL in ${OPENSSL_LIBRARIES} does not have SSL_is_quic. HTTP/3 support cannot be enabled") endif() cmake_pop_check_state() else() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/ChangeLog new/nghttp2-1.50.0/ChangeLog --- old/nghttp2-1.49.0/ChangeLog 2022-08-22 14:07:38.000000000 +0200 +++ new/nghttp2-1.50.0/ChangeLog 2022-09-21 10:19:20.000000000 +0200 @@ -1,672 +1,153 @@ -commit 08676d23f964ac9aa1f9317ad30f0b7d78eb5a5a (HEAD, tag: v1.49.0, origin/master, origin/HEAD, master) +commit 87fef4ab71bebb2168f8d3d554df8d2f0f01f497 (HEAD, tag: v1.50.0, origin/master, origin/HEAD, master) Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-22 +AuthorDate: 2022-09-21 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-22 +CommitDate: 2022-09-21 Update manual pages -commit 28fa90811c7feb4735f4ff76d87f5d2bcb608e6a +commit 844af88dc1ead7036d19f0cc9fe23d4e70a5a967 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-22 +AuthorDate: 2022-09-21 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-22 +CommitDate: 2022-09-21 Bump package and library versions -commit 56f39b30ceb5e48336ffac9ad190328cbde879b5 +commit 2f6ebfdf8c34851e78ce602e7017dc577ee50404 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-22 +AuthorDate: 2022-09-21 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-22 +CommitDate: 2022-09-21 Update AUTHORS -commit df000cd01b321dc0809f5140a6aebdbb27eccdeb -Merge: 68ea0855 47b990f5 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-22 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-22 - - Merge pull request #1784 from nghttp2/fix-covscan-errors - - Fix errors reported by coverity scan - -commit 47b990f50826a0eb5f5ee47eb57640381c8b4246 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-22 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-22 - - Fix errors reported by coverity scan - -commit 68ea085535e31716d79a0b81c979396b65c52168 -Merge: c3fa7715 eb397721 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-22 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-22 - - Merge pull request #1783 from nghttp2/bump-libbpf - - Bump libbpf - -commit eb397721be85872279be45be4b5b025ff8a680e5 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-22 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-22 - - Bump libbpf - -commit c3fa77158ab43d4f2cdfaa2a9810b1ec6b4d900f -Merge: f02f9ff5 7c0649d4 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-22 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-22 - - Merge pull request #1782 from nghttp2/embed-km-id-in-token - - nghttpx: Embed km_id in a regular token - -commit 7c0649d466ea83ff5ff70a023b350f29f18ab300 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-21 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-21 - - nghttpx: Embed km_id in a regular token - -commit f02f9ff50c31d51322789a7ab86dc4eedba268cc -Merge: 9d265e8b 31be3346 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-21 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-21 - - Merge pull request #1781 from nghttp2/token-dcidlen - - nghttpx: Regular token does not require server issued DCID - -commit 31be334660ab1d478a8b24579c8d9c463d5a0889 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-21 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-21 - - nghttpx: Regular token does not require server issued DCID - -commit 9d265e8bb8da32bdb2d6b1e2d84c1c8a2f677fcf -Merge: 42394e33 1aa97d5d -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-21 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-21 - - Merge pull request #1780 from nghttp2/bump-ngtcp2 - - Bump ngtcp2 and nghttp3 - -commit 1aa97d5d2c0539ca37b67921c805ef9981026cfb -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-21 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-21 - - Bump ngtcp2 and nghttp3 - -commit 42394e33427104f9d6f57928600e658945ba89d9 -Merge: f2c793c7 1bc1374d -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-20 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-20 - - Merge pull request #1779 from nghttp2/bump-boringssl - - Bump boringssl - -commit 1bc1374d0cf4f88ff4b7794a9681d10c156ce8a9 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-20 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-20 - - Bump boringssl - -commit f2c793c75b7b723cc013afb37e52531294812773 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-10 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-10 - - clang-format - -commit 1bb4877976367a2285b1de06311436ed277785f4 -Merge: 8a026e18 651f3bfc -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-10 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-10 - - Merge pull request #1770 from DavidKorczynski/dav-fuzz-1 - - fuzz: add frames fuzzer - -commit 651f3bfce2df19c355b14ecdd6bc47be1bafbbb3 -Author: David Korczynski <da...@adalogics.com> -AuthorDate: 2022-08-09 -Commit: David Korczynski <da...@adalogics.com> -CommitDate: 2022-08-09 - - cleanup - -commit 8a026e18f54377fd6b698debed0406c55ec68a66 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-09 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-09 - - clang-format fuzz - -commit 5164745ff912fd968d28b9b42f381a661f3d355b -Merge: 179ecf7c 0ade040a -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-09 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-09 - - Merge pull request #1771 from DavidKorczynski/dav-fuzz-2 - - fuzz: add extended fuzzer using FuzzedDataProvider - -commit 179ecf7ccdc9f59f80a4a74192971f85b9803a38 -Merge: 092014d5 a4d12f2a -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-09 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-09 - - Merge pull request #1775 from nghttp2/src-eliminate-strtoul - - Replace the use of strtoul and strtol with parse_uint - -commit a4d12f2a71d80a21aa2d04baa2e4cd525aea517a -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-09 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-09 - - Replace the use of strtoul and strtol with parse_uint - - Replace the use of strtoul and strtol with parse_uint to fix the - handling of negative integer. - -commit 0ade040a68c5557bdca33a70fd7f0e356a256279 -Author: David Korczynski <da...@adalogics.com> -AuthorDate: 2022-08-04 -Commit: David Korczynski <da...@adalogics.com> -CommitDate: 2022-08-04 - - fuzz: add extended fuzzer using FuzzedDataProvider - - Similar in nature to fuzz_target.cc but adds the difference of a random - iv constructed by way of fuzzer data. - -commit 59be24be32bf3eeec12ce19ecff6227267fc9d84 -Author: David Korczynski <da...@adalogics.com> -AuthorDate: 2022-08-04 -Commit: David Korczynski <da...@adalogics.com> -CommitDate: 2022-08-04 - - fuzz: add frames fuzzer - -commit 092014d5af809a405e9d059d064745b247f1a2d0 -Merge: a3be7636 39d9efe4 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-08-04 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-08-04 - - Merge pull request #1769 from nghttp2/randomize-backend-addresses - - nghttpx: Randomize backend address backend robin order per thread (2nd Ed.) - -commit 39d9efe4bd1e2249f31e5cad5c4734fd0deb2037 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-08-04 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-08-04 - - nghttpx: Randomize backend address backend robin order per thread (2nd Ed.) - - This is the 2nd attempt to randomize backend address round robin - order. - - The initial attempt of doing this was - fdcdb21c38ef7acf23853d47d1dc5bda69d5398f, which has been reverted via - 470f06e5f6deab5284ffe93f15cc4ce8b16ee2ec because it broke the session - affinity. - - This time, we shuffles seq fields and avoid reordering addrs vector. - -commit a3be763650b2b6395b244413103d294232d6cdf6 -Merge: a80df35b b4cf6358 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-26 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-26 - - Merge pull request #1766 from nghttp2/h2load-h3-reset-stream-cb - - h2load: Implement nghttp3 reset_stream callback - -commit b4cf6358d4f88aad139b41777ddc2098398a6ae0 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-26 - - h2load: Implement nghttp3 reset_stream callback - -commit a80df35b39ce424204f0d179ea7c490cf3cf2354 -Merge: 75a0d090 ff48a84a -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-26 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-26 - - Merge branch 'lemourin-coro-http' - -commit ff48a84a867ddedc9ead16032d14aa8451534557 -Author: Pawe?? Wegner <pawel.wegne...@gmail.com> -AuthorDate: 2021-07-06 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-26 - - cmake: add ENABLE_DOC option. - - doc subdirectory breaks Xcode generator - -commit 75a0d090dfbf0e4c2f4fbd1bb44ab7c2987b4ec8 -Merge: 2916208e 6418a865 +commit 25858d8adadedcedb6ac11552e0a2d347a782eeb +Merge: 931adb14 11d1f954 Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-26 +AuthorDate: 2022-09-20 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-26 +CommitDate: 2022-09-20 - Merge pull request #1764 from nghttp2/h3-ignore-errors + Merge pull request #1800 from nghttp2/bump-ngtcp2 - Ignore nghttp3 errors which can be ignored + Bump ngtcp2 -commit 6418a865046b7f7536c813bcdfcc64e54255d8dc +commit 11d1f954126b9908797093c3156476e94e0c7f3b Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-20 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-20 - Ignore nghttp3 errors which can be ignored + Bump ngtcp2 -commit 2916208eb39e857927a7edbf6a835cd2b8c34c7a -Merge: c642a9f8 22c88548 +commit 931adb146b2279dc6db0f0696144bdf76661fa99 +Merge: f13cff01 6a513dc9 Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-15 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-15 - Merge pull request #1763 from nghttp2/bump-neverbleed + Merge pull request #1799 from nghttp2/dyn-dns-family - Bump neverbleed + nghttpx: Respect backend-address-family on dynamic DNS lookup -commit 22c88548b9c87ac16992dc6ea6b5684cf4602ab2 +commit 6a513dc9fde51b393761b2da4cbdb878dce8202b Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-15 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-15 - Bump neverbleed + nghttpx: Respect backend-address-family on dynamic DNS lookup -commit c642a9f8565837c312495b9e1a2d622f8d1765bb -Merge: d51647f3 05f8d4e8 +commit f13cff01bb51b4e594ab7f4fcd736fb40a87ab19 +Merge: 9f5bf5c7 2608333c Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-15 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-15 - Merge pull request #1762 from nghttp2/bump-llhttp + Merge pull request #1798 from nghttp2/bump-libbpf - Bump llhttp - -commit 05f8d4e8c96b588022d3db147ca3cb83c42f1fc3 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-25 + Bump libbpf to v1.0.0 - Fix integration test failure - -commit 9d389e874484d56bdf84f696b58381d5e4c72014 +commit 2608333ce55d392eca1167b8bef165427d573dc2 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-15 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-15 - Bump llhttp to f84c4de65875a43b683d4c0c26337b2fa5a38efa + Bump libbpf to v1.0.0 -commit d51647f37e2253f124b31b7298bed13917281064 -Merge: bc909d61 c0111051 +commit 9f5bf5c7ddc6ea7392e2b0c3631aef9c1d73a156 +Merge: 921b4d02 eb06e33e Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-07 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-25 +CommitDate: 2022-09-07 - Merge pull request #1761 from nghttp2/relocate-nghttp2-asio + Merge pull request #1792 from nghttp2/option-no-rfc9113-ltws-validation - libnghttp2_asio has moved to its own repository + Option no rfc9113 ltws validation -commit c0111051245334f165bf37acba309c684f898d46 +commit eb06e33e383e839e39f3310a9f58ff8e51b4e224 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-25 +AuthorDate: 2022-09-06 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-25 - - libnghttp2_asio has moved to its own repository - -commit bc909d6157fed775ac40cf09820140840980dad4 -Merge: f11be7df 5cf678cf -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-22 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-22 - - Merge pull request #1759 from nghttp2/bump-quic-libs - - Bump QUIC related libraries - -commit 5cf678cf5eb81dd59256b7198b54c1d870ba8e38 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-21 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-21 - - Bump QUIC related libraries - -commit f11be7df0938402550ada4ca1eb0745cf2c45ae6 -Merge: 33974fbc 7113970f -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-21 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-21 - - Merge pull request #1755 from vszakats/fix-win-openssl-quic-detection - - cmake: fix detecting quic openssl with win32 - -commit 7113970ff0dabb75e0efceedfd0999f9a659f6e9 -Author: Viktor Szakats <com...@vsz.me> -AuthorDate: 2022-07-14 -Commit: Viktor Szakats <com...@vsz.me> -CommitDate: 2022-07-14 +CommitDate: 2022-09-07 - cmake: fix detecting quic openssl with win32 - - By adding two necessary system libraries to make the QUIC test snippet - link correctly. - - Before: - ``` - -- Looking for SSL_is_quic - -- Looking for SSL_is_quic - not found - CMake Warning at CMakeLists.txt:206 (message): - OpenSSL in - /[...]/openssl-quic/x64-ucrt/usr/lib/libssl.a;/[...]/openssl-quic/x64-ucrt/usr/lib/libcrypto.a - dose not have SSL_is_quic. HTTP/3 support cannot be enabled - ``` - - After: - ``` - -- Looking for SSL_is_quic - -- Looking for SSL_is_quic - found - ``` - - Same fix as previously merged to ngtcp2: - https://github.com/ngtcp2/ngtcp2/pull/481 - -commit 33974fbcd72a6cd8f3a3186062fccb8681e65c08 -Merge: 014f1c51 6eb90570 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-12 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-12 - - Merge pull request #1754 from nghttp2/bump-sphinx-rtd-theme - - Bump sphinx_rtd_theme + Add nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation -commit 6eb90570f0d5e824f6fa0d6715dc119f4e5ed897 +commit a94d2de89a347f433801ad2d7eecead88a5fbc27 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-12 +AuthorDate: 2022-09-06 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-12 +CommitDate: 2022-09-07 - Bump sphinx_rtd_theme + Check leading white spaces in :protocol -commit 014f1c510d85ecd26be038a6dca570a4077eaad1 -Merge: 3d35558f db770a81 +commit 921b4d027a2f0d32cd9ff34fdb19bd5a18ac8ad4 +Merge: 1340b296 026ff48e Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-08 +AuthorDate: 2022-09-06 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-08 +CommitDate: 2022-09-06 - Merge pull request #1752 from nghttp2/cross-build-fix + Merge pull request #1791 from nghttp2/bump-ngtcp2 - Cross build fix - -commit db770a815aebdd3eb6233c63900ec2cefa0ef0a5 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-07 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-07 + Bump ngtcp2 - Remove missing header patch - -commit aedb01a1a483e639a9fed6975f57d3ec00162840 +commit 026ff48edbf445109f83e6b79fc3ee63a54a237b Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-07 +AuthorDate: 2022-09-01 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-07 +CommitDate: 2022-09-01 - Run tests for x86_64-w64-mingw32 host only - - GitHub Actions suddenly refused to install wine32 because of broken - dependencies. In order to workaround this issue, do not run tests on - i686-w64-mingw32 host. + Bump ngtcp2 -commit 3d35558f0e4f04a46f078f68455a8953a5e2ee97 -Merge: ffe15193 02a3a15b +commit 1340b296dde152fb0771f1eb4e4c221047d37ab7 +Merge: f919cf1a fc5a020b Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-06 +AuthorDate: 2022-08-29 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-06 +CommitDate: 2022-08-29 - Merge pull request #1751 from nghttp2/bump-quictls + Merge pull request #1787 from heitbaum/patch-1 - Bump quictls + Fix typographic error -commit 02a3a15b8227bb7f55606de84a3d9373e1f98683 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-06 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-06 - - Bump quictls - -commit ffe1519366038fcd316e2da556d97a71601bc248 -Merge: 78cb0008 97a5ca58 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-05 +commit fc5a020bc62eb5f860e22e50dad2060ef8cd22fd +Author: Rudi Heitbaum <r...@heitbaum.com> +AuthorDate: 2022-08-29 Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-05 +CommitDate: 2022-08-29 - Merge pull request #1750 from nghttp2/pythonbindings-deprecation - - Deprecate Python bindings + Fix typographic error -commit 97a5ca584bde24d81bf15afadf79a795126ef9db +commit f919cf1a8e88e2949e289570e8bee679bea87f32 Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-05 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-05 - - Deprecate Python bindings - -commit 78cb0008d3177676875f51a5baaf19b9fe379230 -Merge: d38cf2d1 b7b09acb -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-05 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-05 - - Merge pull request #1749 from nghttp2/libasio-deprecation - - Deprecate libnghttp2_asio - -commit d38cf2d11c9b62bd54bb00ded779e1ec3055bd2c -Merge: 118648ff 83ea8e5b -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-05 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-05 - - Merge pull request #1748 from nghttp2/cross-build - - Cross build - -commit b7b09acb8137e123d49240470ad0d157c6266d85 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-05 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-05 - - Deprecate libnghttp2_asio - -commit 83ea8e5ba56486762b217592b59a614b192f0396 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-05 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-05 - - Add build-cross - -commit 9a16e73813d21182f85a7b0aaaa696ff692ed6f6 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-05 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-05 - - Compile with mingw64 - -commit 2da17132004a2ef288bd8ebda5c2ffabd4e4d771 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-05 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-05 - - Define BUILDING_NGHTTP2 for tests to make linker work - -commit 118648ff175dd20cf373c5f542fb3befed0594bf -Merge: e065cbcc d9acf873 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-07-04 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-07-04 - - Merge pull request #1747 from nghttp2/nghttpx-fix-proxy-proto - - nghttpx: Fix broken PROXY-protocol - -commit d9acf873ed08225ffea62612cf28160c772f6061 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-07-04 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-07-04 - - nghttpx: Fix broken PROXY-protocol - - Fix PROXY-protocol that is enabled for TLS connection. - -commit e065cbccb6a65cc0eefa98bd9e4975dd562e2bb6 -Merge: cad6f6c3 fc6d0643 -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-06-25 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-06-25 - - Merge pull request #1745 from nghttp2/no-lws-check - - No need to check pseudo header lws - -commit cad6f6c3f008a3ab4ee705fb017994010eef9d74 -Merge: 54848210 501b1d4d -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-06-25 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-06-25 - - Merge pull request #1744 from nghttp2/nghttpx-remove-h1-field-trailing-white-spaces - - nghttpx: Remove trailing white spaces from HTTP/1.1 fields - -commit fc6d0643710f4fec2abb5a2008041da70855151e -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-06-25 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-06-25 - - No need to check pseudo header lws - - No need to check pseudo header lws because it is guaranteed not to - have leading white spaces. - -commit 501b1d4dcf60bcdf973b380ff1a4807053484026 -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-06-24 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-06-25 - - nghttpx: Remove trailing white spaces from HTTP/1.1 fields - -commit 54848210a943ddbe4f38c9e43d77a9ee4f203b2f -Merge: af30e57c 7f4c2f9e -Author: Tatsuhiro Tsujikawa <404610+tatsuhir...@users.noreply.github.com> -AuthorDate: 2022-06-24 -Commit: GitHub <nore...@github.com> -CommitDate: 2022-06-24 - - Merge pull request #1743 from nghttp2/rfc9113-field-value-validation - - Add nghttp2_check_header_value_rfc9113 - -commit 7f4c2f9ec37b6c83369624841eb303f1f8414cfd -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-06-24 -Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-06-24 - - Add nghttp2_check_header_value_rfc9113 - - Add nghttp2_check_header_value_rfc9113 which verifies the additional - rule imposed by RFC 9113, section 8.2.1, that is a field value must - not start or end with 0x20(SPC) or 0x09(HTAB). - - libnghttp2 uses this new function internally. - -commit af30e57c5e15b2b4a0c38266e223e2d327ba9dee -Author: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -AuthorDate: 2022-06-24 +AuthorDate: 2022-08-22 Commit: Tatsuhiro Tsujikawa <tatsuhir...@gmail.com> -CommitDate: 2022-06-24 +CommitDate: 2022-08-22 Bump package version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/README.rst new/nghttp2-1.50.0/README.rst --- old/nghttp2-1.49.0/README.rst 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/README.rst 2022-09-21 10:18:55.000000000 +0200 @@ -150,8 +150,8 @@ * `OpenSSL with QUIC support <https://github.com/quictls/openssl/tree/OpenSSL_1_1_1q+quic>`_; or `BoringSSL <https://boringssl.googlesource.com/boringssl/>`_ (commit - a6d321b11fa80496b7c8ae6405468c212d4f5c87) -* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 0.8.0 + 04989786e9ab16cef5261bbd05a2b1a8cb312dbf) +* `ngtcp2 <https://github.com/ngtcp2/ngtcp2>`_ >= 0.9.0 * `nghttp3 <https://github.com/ngtcp2/nghttp3>`_ >= 0.7.0 Use ``--enable-http3`` configure option to enable HTTP/3 feature for @@ -167,7 +167,7 @@ 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/v0.8.1>`_. nghttpx +<https://github.com/libbpf/libbpf/releases/tag/v1.0.0>`_. nghttpx requires eBPF program for reloading its configuration and hot swapping its executable. @@ -363,7 +363,7 @@ .. code-block:: text - $ git clone --depth 1 -b v0.7.0 https://github.com/ngtcp2/nghttp3 + $ git clone --depth 1 -b v0.7.1 https://github.com/ngtcp2/nghttp3 $ cd nghttp3 $ autoreconf -i $ ./configure --prefix=$PWD/build --enable-lib-only @@ -375,7 +375,7 @@ .. code-block:: text - $ git clone --depth 1 -b v0.8.0 https://github.com/ngtcp2/ngtcp2 + $ git clone --depth 1 -b v0.9.0 https://github.com/ngtcp2/ngtcp2 $ cd ngtcp2 $ autoreconf -i $ ./configure --prefix=$PWD/build --enable-lib-only \ @@ -389,7 +389,7 @@ .. code-block:: text - $ git clone --depth 1 -b v0.8.1 https://github.com/libbpf/libbpf + $ git clone --depth 1 -b v1.0.0 https://github.com/libbpf/libbpf $ cd libbpf $ PREFIX=$PWD/build make -C src install $ cd .. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/configure.ac new/nghttp2-1.50.0/configure.ac --- old/nghttp2-1.49.0/configure.ac 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/configure.ac 2022-09-21 10:18:55.000000000 +0200 @@ -25,7 +25,7 @@ dnl https://www.gnu.org/software/automake/manual/html_node/Flag-Variables-Ordering.html AC_PREREQ(2.61) -AC_INIT([nghttp2], [1.49.0], [t-tujik...@users.sourceforge.net]) +AC_INIT([nghttp2], [1.50.0], [t-tujik...@users.sourceforge.net]) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) @@ -44,9 +44,9 @@ dnl See versioning rule: dnl https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html -AC_SUBST(LT_CURRENT, 37) +AC_SUBST(LT_CURRENT, 38) AC_SUBST(LT_REVISION, 0) -AC_SUBST(LT_AGE, 23) +AC_SUBST(LT_AGE, 24) major=`echo $PACKAGE_VERSION |cut -d. -f1 | sed -e "s/[^0-9]//g"` minor=`echo $PACKAGE_VERSION |cut -d. -f2 | sed -e "s/[^0-9]//g"` @@ -540,7 +540,7 @@ # ngtcp2 (for src) have_libngtcp2=no if test "x${request_libngtcp2}" != "xno"; then - PKG_CHECK_MODULES([LIBNGTCP2], [libngtcp2 >= 0.8.0], [have_libngtcp2=yes], + PKG_CHECK_MODULES([LIBNGTCP2], [libngtcp2 >= 0.9.0], [have_libngtcp2=yes], [have_libngtcp2=no]) if test "x${have_libngtcp2}" = "xno"; then AC_MSG_NOTICE($LIBNGTCP2_PKG_ERRORS) @@ -557,7 +557,7 @@ if test "x${have_ssl_is_quic}" = "xyes" && test "x${request_libngtcp2}" != "xno"; then PKG_CHECK_MODULES([LIBNGTCP2_CRYPTO_OPENSSL], - [libngtcp2_crypto_openssl >= 0.8.0], + [libngtcp2_crypto_openssl >= 0.9.0], [have_libngtcp2_crypto_openssl=yes], [have_libngtcp2_crypto_openssl=no]) if test "x${have_libngtcp2_crypto_openssl}" = "xno"; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/Makefile.am new/nghttp2-1.50.0/doc/Makefile.am --- old/nghttp2-1.49.0/doc/Makefile.am 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/doc/Makefile.am 2022-09-21 10:18:55.000000000 +0200 @@ -69,6 +69,7 @@ nghttp2_option_set_no_closed_streams.rst \ nghttp2_option_set_no_http_messaging.rst \ nghttp2_option_set_no_recv_client_magic.rst \ + nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation.rst \ nghttp2_option_set_peer_max_concurrent_streams.rst \ nghttp2_option_set_server_fallback_rfc7540_priorities.rst \ nghttp2_option_set_user_recv_extension_type.rst \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/h2load.1 new/nghttp2-1.50.0/doc/h2load.1 --- old/nghttp2-1.49.0/doc/h2load.1 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/doc/h2load.1 2022-09-21 10:18:55.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "H2LOAD" "1" "Aug 22, 2022" "1.49.0" "nghttp2" +.TH "H2LOAD" "1" "Sep 21, 2022" "1.50.0" "nghttp2" .SH NAME h2load \- HTTP/2 benchmarking tool .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/nghttp.1 new/nghttp2-1.50.0/doc/nghttp.1 --- old/nghttp2-1.49.0/doc/nghttp.1 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/doc/nghttp.1 2022-09-21 10:18:55.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NGHTTP" "1" "Aug 22, 2022" "1.49.0" "nghttp2" +.TH "NGHTTP" "1" "Sep 21, 2022" "1.50.0" "nghttp2" .SH NAME nghttp \- HTTP/2 client .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation.rst new/nghttp2-1.50.0/doc/nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation.rst --- old/nghttp2-1.49.0/doc/nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/nghttp2-1.50.0/doc/nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation.rst 2022-09-21 10:19:44.000000000 +0200 @@ -0,0 +1,16 @@ + +nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation +================================================================ + +Synopsis +-------- + +*#include <nghttp2/nghttp2.h>* + +.. function:: void nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation( nghttp2_option *option, int val) + + + This option, if set to nonzero, turns off RFC 9113 leading and + trailing white spaces validation against HTTP field value. Some + important fields, such as HTTP/2 pseudo header fields, are + validated more strictly and this option does not apply to them. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/nghttpd.1 new/nghttp2-1.50.0/doc/nghttpd.1 --- old/nghttp2-1.49.0/doc/nghttpd.1 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/doc/nghttpd.1 2022-09-21 10:18:55.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NGHTTPD" "1" "Aug 22, 2022" "1.49.0" "nghttp2" +.TH "NGHTTPD" "1" "Sep 21, 2022" "1.50.0" "nghttp2" .SH NAME nghttpd \- HTTP/2 server .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/doc/nghttpx.1 new/nghttp2-1.50.0/doc/nghttpx.1 --- old/nghttp2-1.49.0/doc/nghttpx.1 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/doc/nghttpx.1 2022-09-21 10:18:55.000000000 +0200 @@ -27,7 +27,7 @@ .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "NGHTTPX" "1" "Aug 22, 2022" "1.49.0" "nghttp2" +.TH "NGHTTPX" "1" "Sep 21, 2022" "1.50.0" "nghttp2" .SH NAME nghttpx \- HTTP/2 proxy .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/includes/nghttp2/nghttp2.h new/nghttp2-1.50.0/lib/includes/nghttp2/nghttp2.h --- old/nghttp2-1.49.0/lib/includes/nghttp2/nghttp2.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/includes/nghttp2/nghttp2.h 2022-09-21 10:18:55.000000000 +0200 @@ -2753,6 +2753,18 @@ /** * @function * + * This option, if set to nonzero, turns off RFC 9113 leading and + * trailing white spaces validation against HTTP field value. Some + * important fields, such as HTTP/2 pseudo header fields, are + * validated more strictly and this option does not apply to them. + */ +NGHTTP2_EXTERN void +nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation( + nghttp2_option *option, int val); + +/** + * @function + * * Initializes |*session_ptr| for client use. The all members of * |callbacks| are copied to |*session_ptr|. Therefore |*session_ptr| * does not store |callbacks|. The |user_data| is an arbitrary user diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/includes/nghttp2/nghttp2ver.h new/nghttp2-1.50.0/lib/includes/nghttp2/nghttp2ver.h --- old/nghttp2-1.49.0/lib/includes/nghttp2/nghttp2ver.h 2022-08-22 14:07:58.000000000 +0200 +++ new/nghttp2-1.50.0/lib/includes/nghttp2/nghttp2ver.h 2022-09-21 10:19:40.000000000 +0200 @@ -29,7 +29,7 @@ * @macro * Version number of the nghttp2 library release */ -#define NGHTTP2_VERSION "1.49.0" +#define NGHTTP2_VERSION "1.50.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 0x013100 +#define NGHTTP2_VERSION_NUM 0x013200 #endif /* NGHTTP2VER_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_http.c new/nghttp2-1.50.0/lib/nghttp2_http.c --- old/nghttp2-1.49.0/lib/nghttp2_http.c 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_http.c 2022-09-21 10:18:55.000000000 +0200 @@ -336,6 +336,16 @@ return 1; } +static int lws(const uint8_t *s, size_t n) { + size_t i; + for (i = 0; i < n; ++i) { + if (s[i] != ' ' && s[i] != '\t') { + return 0; + } + } + return 1; +} + int nghttp2_http_on_header(nghttp2_session *session, nghttp2_stream *stream, nghttp2_frame *frame, nghttp2_hd_nv *nv, int trailer) { @@ -378,6 +388,10 @@ case NGHTTP2_TOKEN_HOST: if (session->server || frame->hd.type == NGHTTP2_PUSH_PROMISE) { rv = nghttp2_check_authority(nv->value->base, nv->value->len); + } else if ( + stream->flags & + NGHTTP2_STREAM_FLAG_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) { + rv = nghttp2_check_header_value(nv->value->base, nv->value->len); } else { rv = nghttp2_check_header_value_rfc9113(nv->value->base, nv->value->len); } @@ -385,8 +399,24 @@ case NGHTTP2_TOKEN__SCHEME: rv = check_scheme(nv->value->base, nv->value->len); break; + case NGHTTP2_TOKEN__PROTOCOL: + /* Check the value consists of just white spaces, which was done + in check_pseudo_header before + nghttp2_check_header_value_rfc9113 has been introduced. */ + if ((stream->flags & + NGHTTP2_STREAM_FLAG_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) && + lws(nv->value->base, nv->value->len)) { + rv = 0; + break; + } + /* fall through */ default: - rv = nghttp2_check_header_value_rfc9113(nv->value->base, nv->value->len); + if (stream->flags & + NGHTTP2_STREAM_FLAG_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) { + rv = nghttp2_check_header_value(nv->value->base, nv->value->len); + } else { + rv = nghttp2_check_header_value_rfc9113(nv->value->base, nv->value->len); + } } if (rv == 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_option.c new/nghttp2-1.50.0/lib/nghttp2_option.c --- old/nghttp2-1.49.0/lib/nghttp2_option.c 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_option.c 2022-09-21 10:18:55.000000000 +0200 @@ -136,3 +136,10 @@ option->opt_set_mask |= NGHTTP2_OPT_SERVER_FALLBACK_RFC7540_PRIORITIES; option->server_fallback_rfc7540_priorities = val; } + +void nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation( + nghttp2_option *option, int val) { + option->opt_set_mask |= + NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION; + option->no_rfc9113_leading_and_trailing_ws_validation = val; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_option.h new/nghttp2-1.50.0/lib/nghttp2_option.h --- old/nghttp2-1.49.0/lib/nghttp2_option.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_option.h 2022-09-21 10:18:55.000000000 +0200 @@ -69,6 +69,7 @@ NGHTTP2_OPT_MAX_OUTBOUND_ACK = 1 << 11, NGHTTP2_OPT_MAX_SETTINGS = 1 << 12, NGHTTP2_OPT_SERVER_FALLBACK_RFC7540_PRIORITIES = 1 << 13, + NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION = 1 << 14, } nghttp2_option_flag; /** @@ -133,6 +134,10 @@ */ int server_fallback_rfc7540_priorities; /** + * NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION + */ + int no_rfc9113_leading_and_trailing_ws_validation; + /** * NGHTTP2_OPT_USER_RECV_EXT_TYPES */ uint8_t user_recv_ext_types[32]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_session.c new/nghttp2-1.50.0/lib/nghttp2_session.c --- old/nghttp2-1.49.0/lib/nghttp2_session.c 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_session.c 2022-09-21 10:18:55.000000000 +0200 @@ -566,6 +566,13 @@ (*session_ptr)->opt_flags |= NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES; } + + if ((option->opt_set_mask & + NGHTTP2_OPT_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) && + option->no_rfc9113_leading_and_trailing_ws_validation) { + (*session_ptr)->opt_flags |= + NGHTTP2_OPTMASK_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION; + } } rv = nghttp2_hd_deflate_init2(&(*session_ptr)->hd_deflater, @@ -1296,6 +1303,11 @@ mem = &session->mem; stream = nghttp2_session_get_stream_raw(session, stream_id); + if (session->opt_flags & + NGHTTP2_OPTMASK_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION) { + flags |= NGHTTP2_STREAM_FLAG_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION; + } + if (stream) { assert(stream->state == NGHTTP2_STREAM_IDLE); assert((stream->flags & NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES) || diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_session.h new/nghttp2-1.50.0/lib/nghttp2_session.h --- old/nghttp2-1.49.0/lib/nghttp2_session.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_session.h 2022-09-21 10:18:55.000000000 +0200 @@ -53,7 +53,8 @@ NGHTTP2_OPTMASK_NO_HTTP_MESSAGING = 1 << 2, NGHTTP2_OPTMASK_NO_AUTO_PING_ACK = 1 << 3, NGHTTP2_OPTMASK_NO_CLOSED_STREAMS = 1 << 4, - NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES = 1 << 5 + NGHTTP2_OPTMASK_SERVER_FALLBACK_RFC7540_PRIORITIES = 1 << 5, + NGHTTP2_OPTMASK_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION = 1 << 6, } nghttp2_optmask; /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/lib/nghttp2_stream.h new/nghttp2-1.50.0/lib/nghttp2_stream.h --- old/nghttp2-1.49.0/lib/nghttp2_stream.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/lib/nghttp2_stream.h 2022-09-21 10:18:55.000000000 +0200 @@ -96,6 +96,9 @@ NGHTTP2_STREAM_FLAG_NO_RFC7540_PRIORITIES = 0x10, /* Ignore client RFC 9218 priority signal. */ NGHTTP2_STREAM_FLAG_IGNORE_CLIENT_PRIORITIES = 0x20, + /* Indicates that RFC 9113 leading and trailing white spaces + validation against a field value is not performed. */ + NGHTTP2_STREAM_FLAG_NO_RFC9113_LEADING_AND_TRAILING_WS_VALIDATION = 0x40, } nghttp2_stream_flag; /* HTTP related flags to enforce HTTP semantics */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_dns_tracker.cc new/nghttp2-1.50.0/src/shrpx_dns_tracker.cc --- old/nghttp2-1.49.0/src/shrpx_dns_tracker.cc 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_dns_tracker.cc 2022-09-21 10:18:55.000000000 +0200 @@ -36,7 +36,8 @@ } } // namespace -DNSTracker::DNSTracker(struct ev_loop *loop) : loop_(loop) { +DNSTracker::DNSTracker(struct ev_loop *loop, int family) + : loop_(loop), family_(family) { ev_timer_init(&gc_timer_, gccb, 0., 12_h); gc_timer_.data = this; } @@ -111,7 +112,7 @@ LOG(INFO) << "DNS entry not found for " << dnsq->host; } - auto resolv = std::make_unique<DualDNSResolver>(loop_); + auto resolv = std::make_unique<DualDNSResolver>(loop_, family_); auto host_copy = ImmutableString{std::begin(dnsq->host), std::end(dnsq->host)}; auto host = StringRef{host_copy}; @@ -180,7 +181,7 @@ << ", but it has been expired"; } - auto resolv = std::make_unique<DualDNSResolver>(loop_); + auto resolv = std::make_unique<DualDNSResolver>(loop_, family_); auto host = StringRef{ent.host}; rv = resolv->resolve(host); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_dns_tracker.h new/nghttp2-1.50.0/src/shrpx_dns_tracker.h --- old/nghttp2-1.49.0/src/shrpx_dns_tracker.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_dns_tracker.h 2022-09-21 10:18:55.000000000 +0200 @@ -75,7 +75,7 @@ class DNSTracker { public: - DNSTracker(struct ev_loop *loop); + DNSTracker(struct ev_loop *loop, int family); ~DNSTracker(); // Lookups host name described in |dnsq|. If name lookup finishes @@ -111,6 +111,8 @@ // increase memory consumption, interval could be very long. ev_timer gc_timer_; struct ev_loop *loop_; + // IP version preference. + int family_; }; } // namespace shrpx diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_dual_dns_resolver.cc new/nghttp2-1.50.0/src/shrpx_dual_dns_resolver.cc --- old/nghttp2-1.49.0/src/shrpx_dual_dns_resolver.cc 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_dual_dns_resolver.cc 2022-09-21 10:18:55.000000000 +0200 @@ -26,8 +26,8 @@ namespace shrpx { -DualDNSResolver::DualDNSResolver(struct ev_loop *loop) - : resolv4_(loop), resolv6_(loop) { +DualDNSResolver::DualDNSResolver(struct ev_loop *loop, int family) + : family_(family), resolv4_(loop), resolv6_(loop) { auto cb = [this](DNSResolverStatus, const Address *) { Address result; @@ -44,14 +44,22 @@ cb(status, &result); }; - resolv4_.set_complete_cb(cb); - resolv6_.set_complete_cb(cb); + if (family_ == AF_UNSPEC || family_ == AF_INET) { + resolv4_.set_complete_cb(cb); + } + if (family_ == AF_UNSPEC || family_ == AF_INET6) { + resolv6_.set_complete_cb(cb); + } } int DualDNSResolver::resolve(const StringRef &host) { - int rv4, rv6; - rv4 = resolv4_.resolve(host, AF_INET); - rv6 = resolv6_.resolve(host, AF_INET6); + int rv4 = 0, rv6 = 0; + if (family_ == AF_UNSPEC || family_ == AF_INET) { + rv4 = resolv4_.resolve(host, AF_INET); + } + if (family_ == AF_UNSPEC || family_ == AF_INET6) { + rv6 = resolv6_.resolve(host, AF_INET6); + } if (rv4 != 0 && rv6 != 0) { return -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_dual_dns_resolver.h new/nghttp2-1.50.0/src/shrpx_dual_dns_resolver.h --- old/nghttp2-1.49.0/src/shrpx_dual_dns_resolver.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_dual_dns_resolver.h 2022-09-21 10:18:55.000000000 +0200 @@ -42,7 +42,11 @@ // how CompleteCb is called have the same semantics with DNSResolver. class DualDNSResolver { public: - DualDNSResolver(struct ev_loop *loop); + // |family| controls IP version preference. If |family| == + // AF_UNSPEC, bot A and AAAA lookups are performed. If |family| == + // AF_INET, only A lookup is performed. If |family| == AF_INET6, + // only AAAA lookup is performed. + DualDNSResolver(struct ev_loop *loop, int family); // Resolves |host|. |host| must be NULL-terminated string. int resolve(const StringRef &host); @@ -51,6 +55,8 @@ DNSResolverStatus get_status(Address *result) const; private: + // IP version preference. + int family_; // For A record DNSResolver resolv4_; // For AAAA record diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_http3_upstream.cc new/nghttp2-1.50.0/src/shrpx_http3_upstream.cc --- old/nghttp2-1.49.0/src/shrpx_http3_upstream.cc 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_http3_upstream.cc 2022-09-21 10:18:55.000000000 +0200 @@ -757,17 +757,6 @@ ngtcp2_path_storage_zero(&ps); ngtcp2_path_storage_zero(&prev_ps); - auto config = get_config(); - auto &quicconf = config->quic; - - switch (quicconf.upstream.congestion_controller) { - case NGTCP2_CC_ALGO_BBR: - case NGTCP2_CC_ALGO_BBR2: - break; - default: - max_pktcnt = std::min(max_pktcnt, static_cast<size_t>(10)); - } - for (;;) { int64_t stream_id = -1; int fin = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/src/shrpx_worker.cc new/nghttp2-1.50.0/src/shrpx_worker.cc --- old/nghttp2-1.49.0/src/shrpx_worker.cc 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/src/shrpx_worker.cc 2022-09-21 10:18:55.000000000 +0200 @@ -161,7 +161,7 @@ #endif // ENABLE_HTTP3 && HAVE_LIBBPF randgen_(util::make_mt19937()), worker_stat_{}, - dns_tracker_(loop), + dns_tracker_(loop, get_config()->conn.downstream->family), #ifdef ENABLE_HTTP3 quic_upstream_addrs_{get_config()->conn.quic_listener.addrs}, #endif // ENABLE_HTTP3 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/tests/main.c new/nghttp2-1.50.0/tests/main.c --- old/nghttp2-1.49.0/tests/main.c 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/tests/main.c 2022-09-21 10:18:55.000000000 +0200 @@ -363,6 +363,9 @@ test_nghttp2_http_push_promise) || !CU_add_test(pSuite, "http_head_method_upgrade_workaround", test_nghttp2_http_head_method_upgrade_workaround) || + !CU_add_test( + pSuite, "http_no_rfc9113_leading_and_trailing_ws_validation", + test_nghttp2_http_no_rfc9113_leading_and_trailing_ws_validation) || !CU_add_test(pSuite, "frame_pack_headers", test_nghttp2_frame_pack_headers) || !CU_add_test(pSuite, "frame_pack_headers_frame_too_large", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/tests/nghttp2_session_test.c new/nghttp2-1.50.0/tests/nghttp2_session_test.c --- old/nghttp2-1.49.0/tests/nghttp2_session_test.c 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/tests/nghttp2_session_test.c 2022-09-21 10:18:55.000000000 +0200 @@ -13224,3 +13224,83 @@ nghttp2_session_del(session); nghttp2_bufs_free(&bufs); } + +void test_nghttp2_http_no_rfc9113_leading_and_trailing_ws_validation(void) { + nghttp2_session *session; + nghttp2_session_callbacks callbacks; + nghttp2_hd_deflater deflater; + nghttp2_mem *mem; + nghttp2_bufs bufs; + ssize_t rv; + const nghttp2_nv ws_reqnv[] = { + MAKE_NV(":path", "/"), + MAKE_NV(":method", "GET"), + MAKE_NV(":authority", "localhost"), + MAKE_NV(":scheme", "https"), + MAKE_NV("foo", "bar "), + }; + nghttp2_outbound_item *item; + nghttp2_option *option; + + mem = nghttp2_mem_default(); + frame_pack_bufs_init(&bufs); + + memset(&callbacks, 0, sizeof(nghttp2_session_callbacks)); + callbacks.send_callback = null_send_callback; + + /* By default, the leading and trailing white spaces validation is + enabled as per RFC 9113. */ + nghttp2_session_server_new(&session, &callbacks, NULL); + + nghttp2_hd_deflate_init(&deflater, mem); + + rv = pack_headers(&bufs, &deflater, 1, + NGHTTP2_FLAG_END_HEADERS | NGHTTP2_FLAG_END_STREAM, + ws_reqnv, ARRLEN(ws_reqnv), mem); + + CU_ASSERT(0 == rv); + + rv = nghttp2_session_mem_recv(session, bufs.head->buf.pos, + nghttp2_buf_len(&bufs.head->buf)); + + CU_ASSERT((ssize_t)nghttp2_buf_len(&bufs.head->buf) == rv); + + item = nghttp2_session_get_next_ob_item(session); + + CU_ASSERT(NGHTTP2_RST_STREAM == item->frame.hd.type); + CU_ASSERT(0 == nghttp2_session_send(session)); + + nghttp2_bufs_reset(&bufs); + nghttp2_hd_deflate_free(&deflater); + nghttp2_session_del(session); + + /* Turn off the validation */ + nghttp2_option_new(&option); + nghttp2_option_set_no_rfc9113_leading_and_trailing_ws_validation(option, 1); + + nghttp2_session_server_new2(&session, &callbacks, NULL, option); + + nghttp2_hd_deflate_init(&deflater, mem); + + rv = pack_headers(&bufs, &deflater, 1, + NGHTTP2_FLAG_END_HEADERS | NGHTTP2_FLAG_END_STREAM, + ws_reqnv, ARRLEN(ws_reqnv), mem); + + CU_ASSERT(0 == rv); + + rv = nghttp2_session_mem_recv(session, bufs.head->buf.pos, + nghttp2_buf_len(&bufs.head->buf)); + + CU_ASSERT((ssize_t)nghttp2_buf_len(&bufs.head->buf) == rv); + + item = nghttp2_session_get_next_ob_item(session); + + CU_ASSERT(NULL == item); + + nghttp2_bufs_reset(&bufs); + nghttp2_hd_deflate_free(&deflater); + nghttp2_session_del(session); + nghttp2_option_del(option); + + nghttp2_bufs_free(&bufs); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/nghttp2-1.49.0/tests/nghttp2_session_test.h new/nghttp2-1.50.0/tests/nghttp2_session_test.h --- old/nghttp2-1.49.0/tests/nghttp2_session_test.h 2022-08-22 14:07:27.000000000 +0200 +++ new/nghttp2-1.50.0/tests/nghttp2_session_test.h 2022-09-21 10:18:55.000000000 +0200 @@ -178,5 +178,6 @@ void test_nghttp2_http_record_request_method(void); void test_nghttp2_http_push_promise(void); void test_nghttp2_http_head_method_upgrade_workaround(void); +void test_nghttp2_http_no_rfc9113_leading_and_trailing_ws_validation(void); #endif /* NGHTTP2_SESSION_TEST_H */