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

Reply via email to