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
+
+- 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
+
+- 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....
-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
-AuthorDate: 2022-08-22
+AuthorDate: 2022-09-21
Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-22
+CommitDate: 2022-09-21
Update manual pages
-commit 28fa90811c7feb4735f4ff76d87f5d2bcb608e6a
+commit 844af88dc1ead7036d19f0cc9fe23d4e70a5a967
Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-22
+AuthorDate: 2022-09-21
Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-22
+CommitDate: 2022-09-21
Bump package and library versions
-commit 56f39b30ceb5e48336ffac9ad190328cbde879b5
+commit 2f6ebfdf8c34851e78ce602e7017dc577ee50404
Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-22
+AuthorDate: 2022-09-21
Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-22
+CommitDate: 2022-09-21
Update AUTHORS
-commit df000cd01b321dc0809f5140a6aebdbb27eccdeb
-Merge: 68ea0855 47b990f5
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-22
-Commit: GitHub
-CommitDate: 2022-08-22
-
- Merge pull request #1784 from nghttp2/fix-covscan-errors
-
- Fix errors reported by coverity scan
-
-commit 47b990f50826a0eb5f5ee47eb57640381c8b4246
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-22
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-22
-
- Fix errors reported by coverity scan
-
-commit 68ea085535e31716d79a0b81c979396b65c52168
-Merge: c3fa7715 eb397721
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-22
-Commit: GitHub
-CommitDate: 2022-08-22
-
- Merge pull request #1783 from nghttp2/bump-libbpf
-
- Bump libbpf
-
-commit eb397721be85872279be45be4b5b025ff8a680e5
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-22
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-22
-
- Bump libbpf
-
-commit c3fa77158ab43d4f2cdfaa2a9810b1ec6b4d900f
-Merge: f02f9ff5 7c0649d4
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-22
-Commit: GitHub
-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
-AuthorDate: 2022-08-21
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-21
-
- nghttpx: Embed km_id in a regular token
-
-commit f02f9ff50c31d51322789a7ab86dc4eedba268cc
-Merge: 9d265e8b 31be3346
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-21
-Commit: GitHub
-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
-AuthorDate: 2022-08-21
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-21
-
- nghttpx: Regular token does not require server issued DCID
-
-commit 9d265e8bb8da32bdb2d6b1e2d84c1c8a2f677fcf
-Merge: 42394e33 1aa97d5d
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-21
-Commit: GitHub
-CommitDate: 2022-08-21
-
- Merge pull request #1780 from nghttp2/bump-ngtcp2
-
- Bump ngtcp2 and nghttp3
-
-commit 1aa97d5d2c0539ca37b67921c805ef9981026cfb
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-21
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-21
-
- Bump ngtcp2 and nghttp3
-
-commit 42394e33427104f9d6f57928600e658945ba89d9
-Merge: f2c793c7 1bc1374d
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-20
-Commit: GitHub
-CommitDate: 2022-08-20
-
- Merge pull request #1779 from nghttp2/bump-boringssl
-
- Bump boringssl
-
-commit 1bc1374d0cf4f88ff4b7794a9681d10c156ce8a9
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-20
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-20
-
- Bump boringssl
-
-commit f2c793c75b7b723cc013afb37e52531294812773
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-10
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-10
-
- clang-format
-
-commit 1bb4877976367a2285b1de06311436ed277785f4
-Merge: 8a026e18 651f3bfc
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-10
-Commit: GitHub
-CommitDate: 2022-08-10
-
- Merge pull request #1770 from DavidKorczynski/dav-fuzz-1
-
- fuzz: add frames fuzzer
-
-commit 651f3bfce2df19c355b14ecdd6bc47be1bafbbb3
-Author: David Korczynski
-AuthorDate: 2022-08-09
-Commit: David Korczynski
-CommitDate: 2022-08-09
-
- cleanup
-
-commit 8a026e18f54377fd6b698debed0406c55ec68a66
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-08-09
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-08-09
-
- clang-format fuzz
-
-commit 5164745ff912fd968d28b9b42f381a661f3d355b
-Merge: 179ecf7c 0ade040a
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-09
-Commit: GitHub
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-09
-Commit: GitHub
-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
-AuthorDate: 2022-08-09
-Commit: Tatsuhiro Tsujikawa
-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
-AuthorDate: 2022-08-04
-Commit: David Korczynski
-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
-AuthorDate: 2022-08-04
-Commit: David Korczynski
-CommitDate: 2022-08-04
-
- fuzz: add frames fuzzer
-
-commit 092014d5af809a405e9d059d064745b247f1a2d0
-Merge: a3be7636 39d9efe4
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-08-04
-Commit: GitHub
-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
-AuthorDate: 2022-08-04
-Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-26
-Commit: GitHub
-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
-AuthorDate: 2022-07-25
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-26
-
- h2load: Implement nghttp3 reset_stream callback
-
-commit a80df35b39ce424204f0d179ea7c490cf3cf2354
-Merge: 75a0d090 ff48a84a
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-26
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-26
-
- Merge branch 'lemourin-coro-http'
-
-commit ff48a84a867ddedc9ead16032d14aa8451534557
-Author: Pawe�� Wegner
-AuthorDate: 2021-07-06
-Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-26
+AuthorDate: 2022-09-20
Commit: GitHub
-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
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-20
Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-15
Commit: GitHub
-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
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-15
Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-15
Commit: GitHub
-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
-AuthorDate: 2022-07-25
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-25
+ Bump libbpf to v1.0.0
- Fix integration test failure
-
-commit 9d389e874484d56bdf84f696b58381d5e4c72014
+commit 2608333ce55d392eca1167b8bef165427d573dc2
Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-15
Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-07
Commit: GitHub
-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
-AuthorDate: 2022-07-25
+AuthorDate: 2022-09-06
Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-25
-
- libnghttp2_asio has moved to its own repository
-
-commit bc909d6157fed775ac40cf09820140840980dad4
-Merge: f11be7df 5cf678cf
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-22
-Commit: GitHub
-CommitDate: 2022-07-22
-
- Merge pull request #1759 from nghttp2/bump-quic-libs
-
- Bump QUIC related libraries
-
-commit 5cf678cf5eb81dd59256b7198b54c1d870ba8e38
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-21
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-21
-
- Bump QUIC related libraries
-
-commit f11be7df0938402550ada4ca1eb0745cf2c45ae6
-Merge: 33974fbc 7113970f
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-21
-Commit: GitHub
-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
-AuthorDate: 2022-07-14
-Commit: Viktor Szakats
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-12
-Commit: GitHub
-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
-AuthorDate: 2022-07-12
+AuthorDate: 2022-09-06
Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-08
+AuthorDate: 2022-09-06
Commit: GitHub
-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
-AuthorDate: 2022-07-07
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-07
+ Bump ngtcp2
- Remove missing header patch
-
-commit aedb01a1a483e639a9fed6975f57d3ec00162840
+commit 026ff48edbf445109f83e6b79fc3ee63a54a237b
Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-07
+AuthorDate: 2022-09-01
Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-06
+AuthorDate: 2022-08-29
Commit: GitHub
-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
-AuthorDate: 2022-07-06
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-06
-
- Bump quictls
-
-commit ffe1519366038fcd316e2da556d97a71601bc248
-Merge: 78cb0008 97a5ca58
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-05
+commit fc5a020bc62eb5f860e22e50dad2060ef8cd22fd
+Author: Rudi Heitbaum
+AuthorDate: 2022-08-29
Commit: GitHub
-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
-AuthorDate: 2022-07-05
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-05
-
- Deprecate Python bindings
-
-commit 78cb0008d3177676875f51a5baaf19b9fe379230
-Merge: d38cf2d1 b7b09acb
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-05
-Commit: GitHub
-CommitDate: 2022-07-05
-
- Merge pull request #1749 from nghttp2/libasio-deprecation
-
- Deprecate libnghttp2_asio
-
-commit d38cf2d11c9b62bd54bb00ded779e1ec3055bd2c
-Merge: 118648ff 83ea8e5b
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-05
-Commit: GitHub
-CommitDate: 2022-07-05
-
- Merge pull request #1748 from nghttp2/cross-build
-
- Cross build
-
-commit b7b09acb8137e123d49240470ad0d157c6266d85
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-05
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-05
-
- Deprecate libnghttp2_asio
-
-commit 83ea8e5ba56486762b217592b59a614b192f0396
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-05
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-05
-
- Add build-cross
-
-commit 9a16e73813d21182f85a7b0aaaa696ff692ed6f6
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-05
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-05
-
- Compile with mingw64
-
-commit 2da17132004a2ef288bd8ebda5c2ffabd4e4d771
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-05
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-07-05
-
- Define BUILDING_NGHTTP2 for tests to make linker work
-
-commit 118648ff175dd20cf373c5f542fb3befed0594bf
-Merge: e065cbcc d9acf873
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-07-04
-Commit: GitHub
-CommitDate: 2022-07-04
-
- Merge pull request #1747 from nghttp2/nghttpx-fix-proxy-proto
-
- nghttpx: Fix broken PROXY-protocol
-
-commit d9acf873ed08225ffea62612cf28160c772f6061
-Author: Tatsuhiro Tsujikawa
-AuthorDate: 2022-07-04
-Commit: Tatsuhiro Tsujikawa
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-06-25
-Commit: GitHub
-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+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-06-25
-Commit: GitHub
-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
-AuthorDate: 2022-06-25
-Commit: Tatsuhiro Tsujikawa
-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
-AuthorDate: 2022-06-24
-Commit: Tatsuhiro Tsujikawa
-CommitDate: 2022-06-25
-
- nghttpx: Remove trailing white spaces from HTTP/1.1 fields
-
-commit 54848210a943ddbe4f38c9e43d77a9ee4f203b2f
-Merge: af30e57c 7f4c2f9e
-Author: Tatsuhiro Tsujikawa <404610+tatsuhiro-t@users.noreply.github.com>
-AuthorDate: 2022-06-24
-Commit: GitHub
-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
-AuthorDate: 2022-06-24
-Commit: Tatsuhiro Tsujikawa
-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
-AuthorDate: 2022-06-24
+AuthorDate: 2022-08-22
Commit: Tatsuhiro Tsujikawa
-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-Orderi...
AC_PREREQ(2.61)
-AC_INIT([nghttp2], [1.49.0], [t-tujikawa@users.sourceforge.net])
+AC_INIT([nghttp2], [1.50.0], [t-tujikawa@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....
-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 *
+
+.. 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(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 */