aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey A. Osokin <osa@FreeBSD.org>2022-10-20 18:22:47 +0000
committerSergey A. Osokin <osa@FreeBSD.org>2022-10-20 18:24:42 +0000
commit8ec44faa723ef241bfce0bd94cbbe07e82321d81 (patch)
tree943ac6f31bf9173b697de631fd1d07f4eb609ff0
parente718e13209146f1a850830a26f409853ef438af2 (diff)
downloadports-8ec44faa723ef241bfce0bd94cbbe07e82321d81.tar.gz
ports-8ec44faa723ef241bfce0bd94cbbe07e82321d81.zip
www/nginx-devel: update HTTPv3/QUIC patch
It's possible now to build NGINX HTTPv3/QUIC implementation with another the LibreSSL 3.6.0. Bump PORTREVISION.
-rw-r--r--www/nginx-devel/Makefile17
-rw-r--r--www/nginx-devel/Makefile.options.desc1
-rw-r--r--www/nginx-devel/files/extra-patch-httpv3523
3 files changed, 285 insertions, 256 deletions
diff --git a/www/nginx-devel/Makefile b/www/nginx-devel/Makefile
index 2a42f7fa9678..9893ca08af61 100644
--- a/www/nginx-devel/Makefile
+++ b/www/nginx-devel/Makefile
@@ -1,5 +1,6 @@
PORTNAME?= nginx
PORTVERSION= 1.23.2
+PORTREVISION= 1
CATEGORIES= www
MASTER_SITES= https://nginx.org/download/ \
LOCAL/osa
@@ -70,7 +71,8 @@ OPTIONS_GROUP_HTTPGRP= GOOGLE_PERFTOOLS HTTP HTTP_ADDITION HTTP_AUTH_REQ \
HTTP_CACHE HTTP_DAV HTTP_DEGRADATION HTTP_FLV HTTP_GUNZIP_FILTER \
HTTP_GZIP_STATIC HTTP_IMAGE_FILTER HTTP_MP4 HTTP_PERL \
HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK HTTP_SLICE HTTP_SSL \
- HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 HTTPV3 HTTPV3_BORING HTTPV3_QTLS
+ HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 HTTPV3 HTTPV3_BORING HTTPV3_LSSL \
+ HTTPV3_QTLS
OPTIONS_GROUP_MAILGRP= MAIL MAIL_IMAP MAIL_POP3 MAIL_SMTP MAIL_SSL
@@ -167,10 +169,15 @@ HTTPV3_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-httpv3:-p1
HTTPV3_BORING_BUILD_DEPENDS= ${LOCALBASE}/bin/bssl:security/boringssl
HTTPV3_BORING_RUN_DEPENDS= ${LOCALBASE}/bin/bssl:security/boringssl
HTTPV3_BORING_IMPLIES= HTTPV3
-HTTPV3_BORING_PREVENTS= HTTPV3_QTLS
+HTTPV3_BORING_PREVENTS= HTTPV3_LSSL HTTPV3_QTLS
+HTTPV3_LSSL_BUILD_DEPENDS= ${LOCALBASE}/include/tls.h:security/libressl-devel
+HTTPV3_LSSL_BUILD_DEPENDS= ${LOCALBASE}/include/tls.h:security/libressl-devel
+HTTPV3_LSSL_IMPLIES= HTTPV3
+HTTPV3_LSSL_PREVENTS= HTTPV3_BORING HTTPV3_QTLS
HTTPV3_QTLS_BUILD_DEPENDS= ${LOCALBASE}/include/openssl/quic.h:security/openssl-quictls
HTTPV3_QTLS_RUN_DEPENDS= ${LOCALBASE}/include/openssl/quic.h:security/openssl-quictls
HTTPV3_QTLS_IMPLIES= HTTPV3
+HTTPV3_QTLS_PREVENTS= HTTPV3_BORING HTTPV3_LSSL
MAIL_VARS= DSO_BASEMODS+=mail
MAIL_IMAP_CONFIGURE_OFF= --without-mail_imap_module
MAIL_POP3_CONFIGURE_OFF= --without-mail_pop3_module
@@ -234,8 +241,10 @@ IGNORE= required at least PCRE_ONE or PCRE_TWO \
.endif
.if ${PORT_OPTIONS:MHTTPV3} && \
- (empty(PORT_OPTIONS:MHTTPV3_BORING) && empty(PORT_OPTIONS:MHTTPV3_QTLS))
-IGNORE= required HTTPV3_BORING or HTTPV3_QTLS \
+ (empty(PORT_OPTIONS:MHTTPV3_BORING) && \
+ empty(PORT_OPTIONS:MHTTPV3_LSSL) && \
+ empty(PORT_OPTIONS:MHTTPV3_QTLS))
+IGNORE= required HTTPV3_BORING or HTTPV3_LSSL or HTTPV3_QTLS \
to be defined. Please do 'make config' again
.endif
diff --git a/www/nginx-devel/Makefile.options.desc b/www/nginx-devel/Makefile.options.desc
index 8c6098a27fec..9ce97ddc8256 100644
--- a/www/nginx-devel/Makefile.options.desc
+++ b/www/nginx-devel/Makefile.options.desc
@@ -24,6 +24,7 @@ HTTPGRP_DESC= Modules that require HTTP module
HTTPV2_DESC= Enable HTTP/2 protocol support (SSL req.)
HTTPV3_DESC= Enable HTTP/3 protocol support
HTTPV3_BORING_DESC= Use security/boringssl
+HTTPV3_LSSL_DESC= Use secutity/libressl-devel
HTTPV3_QTLS_DESC= Use security/openssl-quictls
HTTP_ACCEPT_LANGUAGE_DESC= 3rd party accept_language module
HTTP_ADDITION_DESC= Enable http_addition module
diff --git a/www/nginx-devel/files/extra-patch-httpv3 b/www/nginx-devel/files/extra-patch-httpv3
index d6cada768b21..3dce419120f9 100644
--- a/www/nginx-devel/files/extra-patch-httpv3
+++ b/www/nginx-devel/files/extra-patch-httpv3
@@ -1,7 +1,7 @@
-diff -r a63d0a70afea README
+diff -r aa901551a7eb README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/README Fri Sep 16 14:00:14 2022 -0400
-@@ -0,0 +1,230 @@
++++ b/README Thu Oct 20 13:21:28 2022 -0400
+@@ -0,0 +1,250 @@
+Experimental QUIC support for nginx
+-----------------------------------
+
@@ -27,16 +27,17 @@ diff -r a63d0a70afea README
+ The code is currently at a beta level of quality, however
+ there are several production deployments with it.
+
-+ We are working on improving HTTP/3 support to integrate it into
-+ the main NGINX codebase. Thus, expect further updates of this code,
-+ including features, changes in behaviour, bug fixes, and refactoring.
-+ We'll be grateful for any feedback and code submissions.
++ NGINX Development Team is working on improving HTTP/3 support to
++ integrate it into the main NGINX codebase. Thus, expect further
++ updates of this code, including features, changes in behaviour,
++ bug fixes, and refactoring. NGINX Development team will be
++ grateful for any feedback and code submissions.
+
-+ You can always contact us via nginx-devel mailing list [3].
++ Please contact NGINX Development Team via nginx-devel mailing list [3].
+
+ What works now:
+
-+ We support IETF QUIC version 1. Internet drafts are no longer supported.
++ IETF QUIC version 1 is supported. Internet drafts are no longer supported.
+
+ nginx should be able to respond to HTTP/3 requests over QUIC and
+ it should be possible to upload and download big files without errors.
@@ -56,24 +57,40 @@ diff -r a63d0a70afea README
+
+2. Installing
+
-+ You will need a BoringSSL [4] library that provides QUIC support
++ A library that provides QUIC support is required to build nginx, there
++ are several of those available on the market:
++ + BoringSSL [4]
++ + LibreSSL [5]
++ + QuicTLS [6]
++
++ Clone the NGINX QUIC repository
+
+ $ hg clone -b quic https://hg.nginx.org/nginx-quic
+ $ cd nginx-quic
++
++ Use the following command to configure nginx with BoringSSL [4]
++
+ $ ./auto/configure --with-debug --with-http_v3_module \
+ --with-cc-opt="-I../boringssl/include" \
+ --with-ld-opt="-L../boringssl/build/ssl \
+ -L../boringssl/build/crypto"
+ $ make
+
-+ Alternatively, nginx can be configured with QuicTLS [5]
++ Alternatively, nginx can be configured with QuicTLS [6]
+
+ $ ./auto/configure --with-debug --with-http_v3_module \
+ --with-cc-opt="-I../quictls/build/include" \
+ --with-ld-opt="-L../quictls/build/lib"
+
-+ When configuring nginx, you can enable QUIC and HTTP/3 using the
-+ following new configuration options:
++ Alternatively, nginx can be configured with a modern version
++ of LibreSSL [7]
++
++ $ ./auto/configure --with-debug --with-http_v3_module \
++ --with-cc-opt="-I../libressl/build/include" \
++ --with-ld-opt="-L../libressl/build/lib"
++
++ When configuring nginx, it's possible to enable QUIC and HTTP/3
++ using the following new configuration options:
+
+ --with-http_v3_module - enable QUIC and HTTP/3
+ --with-stream_quic_module - enable QUIC in Stream
@@ -86,8 +103,8 @@ diff -r a63d0a70afea README
+ The Stream "listen" directive got a new option "quic" which enables
+ QUIC as client transport protocol instead of TCP or plain UDP.
+
-+ Along with "http3" or "quic", you also have to specify "reuseport"
-+ option [6] to make it work properly with multiple workers.
++ Along with "http3" or "quic", it's also possible to specify "reuseport"
++ option [8] to make it work properly with multiple workers.
+
+ To enable address validation:
+
@@ -114,8 +131,9 @@ diff -r a63d0a70afea README
+ quic_host_key <filename>;
+
+
-+ By default, GSO Linux-specific optimization [8] is disabled.
-+ Enable if your network interface is configured to support GSO.
++ By default, GSO Linux-specific optimization [10] is disabled.
++ Enable it in case a corresponding network interface is configured to
++ support GSO.
+
+ A number of directives were added that configure HTTP/3:
+
@@ -168,7 +186,7 @@ diff -r a63d0a70afea README
+
+ Beware of strange issues: sometimes browser may decide to ignore QUIC
+ Cache clearing/restart might help. Always check access.log and
-+ error.log to make sure you are using HTTP/3 and not TCP https.
++ error.log to make sure the browser is using HTTP/3 and not TCP https.
+
+ * Console clients
+
@@ -181,7 +199,7 @@ diff -r a63d0a70afea README
+ $ chromium-build/out/my_build/quic_client http://example.com:8443
+
+
-+ If you've got it right, in the access log you should see something like:
++ In case everyhing is right, the access log should show something like:
+
+ 127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-"
+ "nghttp3/ngtcp2 client" "quic"
@@ -189,28 +207,28 @@ diff -r a63d0a70afea README
+
+5. Troubleshooting
+
-+ Here are some tips that may help you to identify problems:
++ Here are some tips that may help to identify problems:
+
-+ + Ensure you are building with proper SSL library that supports QUIC
++ + Ensure nginx is built with proper SSL library that supports QUIC
+
-+ + Ensure you are using the proper SSL library in runtime
-+ (`nginx -V` will show you what you are using)
++ + Ensure nginx is using the proper SSL library in runtime
++ (`nginx -V` shows what it's using)
+
-+ + Ensure your client is actually sending requests over QUIC
++ + Ensure a client is actually sending requests over QUIC
+ (see "Clients" section about browsers and cache)
+
+ We recommend to start with simple console client like ngtcp2
-+ to ensure you've got server configured properly before trying
++ to ensure the server is configured properly before trying
+ with real browsers that may be very picky with certificates,
+ for example.
+
-+ + Build nginx with debug support [7] and check your debug log.
++ + Build nginx with debug support [9] and check the debug log.
+ It should contain all details about connection and why it
+ failed. All related messages contain "quic " prefix and can
+ be easily filtered out.
+
-+ + If you want to investigate deeper, you may want to enable
-+ additional debugging in src/event/quic/ngx_event_quic_connection.h:
++ + For a deeper investigation, please enable additional debugging
++ in src/event/quic/ngx_event_quic_connection.h:
+
+ #define NGX_QUIC_DEBUG_PACKETS
+ #define NGX_QUIC_DEBUG_FRAMES
@@ -219,7 +237,7 @@ diff -r a63d0a70afea README
+
+6. Contributing
+
-+ If you are willing to contribute, please refer to
++ Please refer to
+ http://nginx.org/en/docs/contributing_changes.html
+
+7. Links
@@ -228,13 +246,15 @@ diff -r a63d0a70afea README
+ [2] https://datatracker.ietf.org/doc/html/rfc9114
+ [3] https://mailman.nginx.org/mailman3/lists/nginx-devel.nginx.org/
+ [4] https://boringssl.googlesource.com/boringssl/
-+ [5] https://github.com/quictls/openssl
-+ [6] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
-+ [7] https://nginx.org/en/docs/debugging_log.html
-+ [8] http://vger.kernel.org/lpc_net2018_talks/willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
-diff -r a63d0a70afea auto/lib/openssl/conf
---- a/auto/lib/openssl/conf Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/lib/openssl/conf Fri Sep 16 14:00:14 2022 -0400
++ [5] https://www.libressl.org/
++ [6] https://github.com/quictls/openssl
++ [7] https://github.com/libressl-portable/portable/releases/tag/v3.6.0
++ [8] https://nginx.org/en/docs/http/ngx_http_core_module.html#listen
++ [9] https://nginx.org/en/docs/debugging_log.html
++ [10] http://vger.kernel.org/lpc_net2018_talks/willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
+diff -r aa901551a7eb auto/lib/openssl/conf
+--- a/auto/lib/openssl/conf Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/lib/openssl/conf Thu Oct 20 13:21:28 2022 -0400
@@ -5,12 +5,16 @@
if [ $OPENSSL != NONE ]; then
@@ -294,9 +314,9 @@ diff -r a63d0a70afea auto/lib/openssl/conf
+ fi
+ fi
fi
-diff -r a63d0a70afea auto/make
---- a/auto/make Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/make Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb auto/make
+--- a/auto/make Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/make Thu Oct 20 13:21:28 2022 -0400
@@ -6,9 +6,10 @@
echo "creating $NGX_MAKEFILE"
@@ -310,9 +330,9 @@ diff -r a63d0a70afea auto/make
$NGX_OBJS/src/mail \
$NGX_OBJS/src/stream \
$NGX_OBJS/src/misc
-diff -r a63d0a70afea auto/modules
---- a/auto/modules Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/modules Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb auto/modules
+--- a/auto/modules Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/modules Thu Oct 20 13:21:28 2022 -0400
@@ -102,7 +102,7 @@ if [ $HTTP = YES ]; then
fi
@@ -473,9 +493,9 @@ diff -r a63d0a70afea auto/modules
if [ $USE_PCRE = YES ]; then
ngx_module_type=CORE
ngx_module_name=ngx_regex_module
-diff -r a63d0a70afea auto/options
---- a/auto/options Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/options Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb auto/options
+--- a/auto/options Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/options Thu Oct 20 13:21:28 2022 -0400
@@ -45,6 +45,8 @@ USE_THREADS=NO
NGX_FILE_AIO=NO
@@ -563,9 +583,9 @@ diff -r a63d0a70afea auto/options
--with-stream_realip_module enable ngx_stream_realip_module
--with-stream_geoip_module enable ngx_stream_geoip_module
--with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
-diff -r a63d0a70afea auto/os/linux
---- a/auto/os/linux Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/os/linux Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb auto/os/linux
+--- a/auto/os/linux Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/os/linux Thu Oct 20 13:21:28 2022 -0400
@@ -232,6 +232,50 @@ ngx_feature_test="struct crypt_data cd;
ngx_include="sys/vfs.h"; . auto/include
@@ -617,9 +637,9 @@ diff -r a63d0a70afea auto/os/linux
# UDP segmentation offloading
ngx_feature="UDP_SEGMENT"
-diff -r a63d0a70afea auto/sources
---- a/auto/sources Tue Jul 19 17:05:27 2022 +0300
-+++ b/auto/sources Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb auto/sources
+--- a/auto/sources Wed Oct 19 10:56:20 2022 +0300
++++ b/auto/sources Thu Oct 20 13:21:28 2022 -0400
@@ -83,7 +83,7 @@ CORE_SRCS="src/core/nginx.c \
EVENT_MODULES="ngx_events_module ngx_event_core_module"
@@ -629,9 +649,9 @@ diff -r a63d0a70afea auto/sources
EVENT_DEPS="src/event/ngx_event.h \
src/event/ngx_event_timer.h \
-diff -r a63d0a70afea src/core/nginx.c
---- a/src/core/nginx.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/core/nginx.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/core/nginx.c
+--- a/src/core/nginx.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/core/nginx.c Thu Oct 20 13:21:28 2022 -0400
@@ -680,6 +680,9 @@ ngx_exec_new_binary(ngx_cycle_t *cycle,
ls = cycle->listening.elts;
@@ -642,9 +662,9 @@ diff -r a63d0a70afea src/core/nginx.c
p = ngx_sprintf(p, "%ud;", ls[i].fd);
}
-diff -r a63d0a70afea src/core/ngx_bpf.c
+diff -r aa901551a7eb src/core/ngx_bpf.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/core/ngx_bpf.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/core/ngx_bpf.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,143 @@
+
+/*
@@ -789,9 +809,9 @@ diff -r a63d0a70afea src/core/ngx_bpf.c
+
+ return ngx_bpf(BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));
+}
-diff -r a63d0a70afea src/core/ngx_bpf.h
+diff -r aa901551a7eb src/core/ngx_bpf.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/core/ngx_bpf.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/core/ngx_bpf.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,43 @@
+
+/*
@@ -836,9 +856,9 @@ diff -r a63d0a70afea src/core/ngx_bpf.h
+int ngx_bpf_map_lookup(int fd, const void *key, void *value);
+
+#endif /* _NGX_BPF_H_INCLUDED_ */
-diff -r a63d0a70afea src/core/ngx_connection.c
---- a/src/core/ngx_connection.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/core/ngx_connection.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/core/ngx_connection.c
+--- a/src/core/ngx_connection.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/core/ngx_connection.c Thu Oct 20 13:21:28 2022 -0400
@@ -72,10 +72,6 @@ ngx_create_listening(ngx_conf_t *cf, str
ngx_memcpy(ls->addr_text.data, text, len);
@@ -863,9 +883,9 @@ diff -r a63d0a70afea src/core/ngx_connection.c
c = ls[i].connection;
if (c) {
-diff -r a63d0a70afea src/core/ngx_connection.h
---- a/src/core/ngx_connection.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/core/ngx_connection.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/core/ngx_connection.h
+--- a/src/core/ngx_connection.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/core/ngx_connection.h Thu Oct 20 13:21:28 2022 -0400
@@ -73,6 +73,7 @@ struct ngx_listening_s {
unsigned reuseport:1;
unsigned add_reuseport:1;
@@ -885,9 +905,9 @@ diff -r a63d0a70afea src/core/ngx_connection.h
#if (NGX_SSL || NGX_COMPAT)
ngx_ssl_connection_t *ssl;
#endif
-diff -r a63d0a70afea src/core/ngx_core.h
---- a/src/core/ngx_core.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/core/ngx_core.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/core/ngx_core.h
+--- a/src/core/ngx_core.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/core/ngx_core.h Thu Oct 20 13:21:28 2022 -0400
@@ -27,6 +27,7 @@ typedef struct ngx_connection_s ngx
typedef struct ngx_thread_task_s ngx_thread_task_t;
typedef struct ngx_ssl_s ngx_ssl_t;
@@ -916,9 +936,9 @@ diff -r a63d0a70afea src/core/ngx_core.h
#define LF (u_char) '\n'
-diff -r a63d0a70afea src/event/ngx_event.c
---- a/src/event/ngx_event.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/event/ngx_event.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/event/ngx_event.c
+--- a/src/event/ngx_event.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/event/ngx_event.c Thu Oct 20 13:21:28 2022 -0400
@@ -267,6 +267,18 @@ ngx_process_events_and_timers(ngx_cycle_
ngx_int_t
ngx_handle_read_event(ngx_event_t *rev, ngx_uint_t flags)
@@ -975,10 +995,10 @@ diff -r a63d0a70afea src/event/ngx_event.c
#if (NGX_HAVE_REUSEPORT)
-diff -r a63d0a70afea src/event/ngx_event_openssl.c
---- a/src/event/ngx_event_openssl.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/event/ngx_event_openssl.c Fri Sep 16 14:00:14 2022 -0400
-@@ -3149,6 +3149,13 @@ ngx_ssl_shutdown(ngx_connection_t *c)
+diff -r aa901551a7eb src/event/ngx_event_openssl.c
+--- a/src/event/ngx_event_openssl.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/event/ngx_event_openssl.c Thu Oct 20 13:21:28 2022 -0400
+@@ -3197,6 +3197,13 @@ ngx_ssl_shutdown(ngx_connection_t *c)
ngx_err_t err;
ngx_uint_t tries;
@@ -992,9 +1012,9 @@ diff -r a63d0a70afea src/event/ngx_event_openssl.c
rc = NGX_OK;
ngx_ssl_ocsp_cleanup(c);
-diff -r a63d0a70afea src/event/ngx_event_openssl.h
---- a/src/event/ngx_event_openssl.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/event/ngx_event_openssl.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/event/ngx_event_openssl.h
+--- a/src/event/ngx_event_openssl.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/event/ngx_event_openssl.h Thu Oct 20 13:21:28 2022 -0400
@@ -24,6 +24,14 @@
#include <openssl/engine.h>
#endif
@@ -1010,9 +1030,9 @@ diff -r a63d0a70afea src/event/ngx_event_openssl.h
#include <openssl/hmac.h>
#ifndef OPENSSL_NO_OCSP
#include <openssl/ocsp.h>
-diff -r a63d0a70afea src/event/ngx_event_udp.c
---- a/src/event/ngx_event_udp.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/event/ngx_event_udp.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/event/ngx_event_udp.c
+--- a/src/event/ngx_event_udp.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/event/ngx_event_udp.c Thu Oct 20 13:21:28 2022 -0400
@@ -12,13 +12,6 @@
#if !(NGX_WIN32)
@@ -1027,9 +1047,9 @@ diff -r a63d0a70afea src/event/ngx_event_udp.c
static void ngx_close_accepted_udp_connection(ngx_connection_t *c);
static ssize_t ngx_udp_shared_recv(ngx_connection_t *c, u_char *buf,
size_t size);
-diff -r a63d0a70afea src/event/ngx_event_udp.h
---- a/src/event/ngx_event_udp.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/event/ngx_event_udp.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/event/ngx_event_udp.h
+--- a/src/event/ngx_event_udp.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/event/ngx_event_udp.h Thu Oct 20 13:21:28 2022 -0400
@@ -23,6 +23,13 @@
#endif
@@ -1044,9 +1064,9 @@ diff -r a63d0a70afea src/event/ngx_event_udp.h
#if (NGX_HAVE_ADDRINFO_CMSG)
typedef union {
-diff -r a63d0a70afea src/event/quic/bpf/bpfgen.sh
+diff -r aa901551a7eb src/event/quic/bpf/bpfgen.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/bpf/bpfgen.sh Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/bpf/bpfgen.sh Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,113 @@
+#!/bin/bash
+
@@ -1161,9 +1181,9 @@ diff -r a63d0a70afea src/event/quic/bpf/bpfgen.sh
+process_section
+generate_tail
+
-diff -r a63d0a70afea src/event/quic/bpf/makefile
+diff -r aa901551a7eb src/event/quic/bpf/makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/bpf/makefile Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/bpf/makefile Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,30 @@
+CFLAGS=-O2 -Wall
+
@@ -1195,9 +1215,9 @@ diff -r a63d0a70afea src/event/quic/bpf/makefile
+ llvm-objdump -S -no-show-raw-insn $<
+
+.DELETE_ON_ERROR:
-diff -r a63d0a70afea src/event/quic/bpf/ngx_quic_reuseport_helper.c
+diff -r aa901551a7eb src/event/quic/bpf/ngx_quic_reuseport_helper.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/bpf/ngx_quic_reuseport_helper.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/bpf/ngx_quic_reuseport_helper.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,140 @@
+#include <errno.h>
+#include <linux/string.h>
@@ -1339,9 +1359,9 @@ diff -r a63d0a70afea src/event/quic/bpf/ngx_quic_reuseport_helper.c
+ */
+ return SK_PASS;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1459 @@
+
+/*
@@ -2802,9 +2822,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic.c
+
+ ngx_quic_finalize_connection(c, qc->shutdown_code, qc->shutdown_reason);
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,123 @@
+
+/*
@@ -2929,9 +2949,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic.h
+ ngx_str_t *secret, ngx_str_t *salt, u_char *out, size_t len);
+
+#endif /* _NGX_EVENT_QUIC_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_ack.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_ack.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_ack.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_ack.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1193 @@
+
+/*
@@ -4126,9 +4146,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ack.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_ack.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_ack.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_ack.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_ack.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,30 @@
+
+/*
@@ -4160,9 +4180,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ack.h
+ ngx_quic_send_ctx_t *ctx);
+
+#endif /* _NGX_EVENT_QUIC_ACK_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_bpf.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_bpf.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_bpf.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_bpf.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,657 @@
+
+/*
@@ -4821,9 +4841,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_bpf.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_bpf_code.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_bpf_code.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_bpf_code.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_bpf_code.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,88 @@
+/* AUTO-GENERATED, DO NOT EDIT. */
+
@@ -4913,9 +4933,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_bpf_code.c
+ .license = "BSD",
+ .type = BPF_PROG_TYPE_SK_REUSEPORT,
+};
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_connection.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_connection.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_connection.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_connection.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) Nginx, Inc.
@@ -5193,9 +5213,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_connection.h
+#endif
+
+#endif /* _NGX_EVENT_QUIC_CONNECTION_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_connid.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_connid.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_connid.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_connid.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,502 @@
+
+/*
@@ -5699,9 +5719,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_connid.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_connid.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_connid.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_connid.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_connid.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,29 @@
+
+/*
@@ -5732,9 +5752,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_connid.h
+ ngx_quic_client_id_t *cid);
+
+#endif /* _NGX_EVENT_QUIC_CONNID_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_frames.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_frames.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_frames.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_frames.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,844 @@
+
+/*
@@ -6580,9 +6600,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_frames.c
+}
+
+#endif
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_frames.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_frames.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_frames.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_frames.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,43 @@
+
+/*
@@ -6627,9 +6647,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_frames.h
+#endif
+
+#endif /* _NGX_EVENT_QUIC_FRAMES_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_migration.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_migration.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_migration.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_migration.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,671 @@
+
+/*
@@ -6942,7 +6962,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_migration.c
+ /* new path requires new client id */
+ cid = ngx_quic_next_client_id(c);
+ if (cid == NULL) {
-+ ngx_log_error(NGX_LOG_ERR, c->log, 0,
++ ngx_log_error(NGX_LOG_INFO, c->log, 0,
+ "quic no available client ids for new path");
+ /* stop processing of this datagram */
+ return NGX_DONE;
@@ -7302,9 +7322,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_migration.c
+ ngx_add_timer(&qc->path_validation, next);
+ }
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_migration.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_migration.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_migration.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_migration.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,42 @@
+
+/*
@@ -7348,9 +7368,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_migration.h
+void ngx_quic_path_validation_handler(ngx_event_t *ev);
+
+#endif /* _NGX_EVENT_QUIC_MIGRATION_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_output.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_output.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_output.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_output.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1292 @@
+
+/*
@@ -8644,9 +8664,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_output.c
+
+ return size;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_output.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_output.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_output.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_output.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,40 @@
+
+/*
@@ -8688,10 +8708,10 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_output.h
+ size_t min, ngx_quic_path_t *path);
+
+#endif /* _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_protection.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_protection.c Fri Sep 16 14:00:14 2022 -0400
-@@ -0,0 +1,1123 @@
++++ b/src/event/quic/ngx_event_quic_protection.c Thu Oct 20 13:21:28 2022 -0400
+@@ -0,0 +1,1126 @@
+
+/*
+ * Copyright (C) Nginx, Inc.
@@ -8709,9 +8729,12 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+
+#define NGX_QUIC_AES_128_KEY_LEN 16
+
-+#define NGX_AES_128_GCM_SHA256 0x1301
-+#define NGX_AES_256_GCM_SHA384 0x1302
-+#define NGX_CHACHA20_POLY1305_SHA256 0x1303
++#ifndef TLS1_3_CK_AES_128_GCM_SHA256
++#define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301
++#define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302
++#define TLS1_3_CK_CHACHA20_POLY1305_SHA256 \
++ 0x03001303
++#endif
+
+
+#ifdef OPENSSL_IS_BORINGSSL
@@ -8784,12 +8807,12 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+ ngx_int_t len;
+
+ if (level == ssl_encryption_initial) {
-+ id = NGX_AES_128_GCM_SHA256;
++ id = TLS1_3_CK_AES_128_GCM_SHA256;
+ }
+
+ switch (id) {
+
-+ case NGX_AES_128_GCM_SHA256:
++ case TLS1_3_CK_AES_128_GCM_SHA256:
+#ifdef OPENSSL_IS_BORINGSSL
+ ciphers->c = EVP_aead_aes_128_gcm();
+#else
@@ -8800,7 +8823,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+ len = 16;
+ break;
+
-+ case NGX_AES_256_GCM_SHA384:
++ case TLS1_3_CK_AES_256_GCM_SHA384:
+#ifdef OPENSSL_IS_BORINGSSL
+ ciphers->c = EVP_aead_aes_256_gcm();
+#else
@@ -8811,7 +8834,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+ len = 32;
+ break;
+
-+ case NGX_CHACHA20_POLY1305_SHA256:
++ case TLS1_3_CK_CHACHA20_POLY1305_SHA256:
+#ifdef OPENSSL_IS_BORINGSSL
+ ciphers->c = EVP_aead_chacha20_poly1305();
+#else
@@ -9336,7 +9359,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+ peer_secret = is_write ? &keys->secrets[level].server
+ : &keys->secrets[level].client;
+
-+ keys->cipher = SSL_CIPHER_get_protocol_id(cipher);
++ keys->cipher = SSL_CIPHER_get_id(cipher);
+
+ key_len = ngx_quic_ciphers(keys->cipher, &ciphers, level);
+
@@ -9815,9 +9838,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_protection.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_protection.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_protection.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,75 @@
+
+/*
@@ -9894,9 +9917,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_protection.h
+
+
+#endif /* _NGX_EVENT_QUIC_PROTECTION_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_socket.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_socket.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_socket.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_socket.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,237 @@
+
+/*
@@ -10135,9 +10158,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_socket.c
+
+ return NULL;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_socket.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_socket.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_socket.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_socket.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,28 @@
+
+/*
@@ -10167,10 +10190,10 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_socket.h
+
+
+#endif /* _NGX_EVENT_QUIC_SOCKET_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_ssl.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_ssl.c Fri Sep 16 14:00:14 2022 -0400
-@@ -0,0 +1,614 @@
++++ b/src/event/quic/ngx_event_quic_ssl.c Thu Oct 20 13:21:28 2022 -0400
+@@ -0,0 +1,610 @@
+
+/*
+ * Copyright (C) Nginx, Inc.
@@ -10191,7 +10214,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+#define NGX_QUIC_MAX_BUFFERED 65535
+
+
-+#if BORINGSSL_API_VERSION >= 10
++#if defined OPENSSL_IS_BORINGSSL || defined LIBRESSL_VERSION_NUMBER
+static int ngx_quic_set_read_secret(ngx_ssl_conn_t *ssl_conn,
+ enum ssl_encryption_level_t level, const SSL_CIPHER *cipher,
+ const uint8_t *secret, size_t secret_len);
@@ -10213,19 +10236,19 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+
+
+static SSL_QUIC_METHOD quic_method = {
-+#if BORINGSSL_API_VERSION >= 10
-+ ngx_quic_set_read_secret,
-+ ngx_quic_set_write_secret,
++#if defined OPENSSL_IS_BORINGSSL || defined LIBRESSL_VERSION_NUMBER
++ .set_read_secret = ngx_quic_set_read_secret,
++ .set_write_secret = ngx_quic_set_write_secret,
+#else
-+ ngx_quic_set_encryption_secrets,
++ .set_encryption_secrets = ngx_quic_set_encryption_secrets,
+#endif
-+ ngx_quic_add_handshake_data,
-+ ngx_quic_flush_flight,
-+ ngx_quic_send_alert,
++ .add_handshake_data = ngx_quic_add_handshake_data,
++ .flush_flight = ngx_quic_flush_flight,
++ .send_alert = ngx_quic_send_alert,
+};
+
+
-+#if BORINGSSL_API_VERSION >= 10
++#if defined OPENSSL_IS_BORINGSSL || defined LIBRESSL_VERSION_NUMBER
+
+static int
+ngx_quic_set_read_secret(ngx_ssl_conn_t *ssl_conn,
@@ -10730,16 +10753,12 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+ return NGX_ERROR;
+ }
+
-+#ifdef SSL_READ_EARLY_DATA_SUCCESS
++#ifdef OPENSSL_INFO_QUIC
+ if (SSL_CTX_get_max_early_data(qc->conf->ssl->ctx)) {
+ SSL_set_quic_early_data_enabled(ssl_conn, 1);
+ }
+#endif
+
-+#if (BORINGSSL_API_VERSION >= 13 && BORINGSSL_API_VERSION < 15)
-+ SSL_set_quic_use_legacy_codepoint(ssl_conn, 0);
-+#endif
-+
+ qsock = ngx_quic_get_socket(c);
+
+ dcid.data = qsock->sid.id;
@@ -10775,7 +10794,7 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+ return NGX_ERROR;
+ }
+
-+#if BORINGSSL_API_VERSION >= 11
++#ifdef OPENSSL_IS_BORINGSSL
+ if (SSL_set_quic_early_data_context(ssl_conn, p, clen) == 0) {
+ ngx_log_error(NGX_LOG_INFO, c->log, 0,
+ "quic SSL_set_quic_early_data_context() failed");
@@ -10785,9 +10804,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_ssl.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_ssl.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_ssl.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,19 @@
+
+/*
@@ -10808,9 +10827,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_ssl.h
+ ngx_quic_header_t *pkt, ngx_quic_frame_t *frame);
+
+#endif /* _NGX_EVENT_QUIC_SSL_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_streams.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_streams.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_streams.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_streams.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1654 @@
+
+/*
@@ -12466,9 +12485,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_streams.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_streams.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_streams.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_streams.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_streams.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,44 @@
+
+/*
@@ -12514,9 +12533,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_streams.h
+ ngx_quic_connection_t *qc);
+
+#endif /* _NGX_EVENT_QUIC_STREAMS_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_tokens.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_tokens.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_tokens.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_tokens.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,285 @@
+
+/*
@@ -12803,9 +12822,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_tokens.c
+
+ return NGX_DECLINED;
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_tokens.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_tokens.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_tokens.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_tokens.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,35 @@
+
+/*
@@ -12842,9 +12861,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_tokens.h
+ u_char *key, ngx_quic_header_t *pkt);
+
+#endif /* _NGX_EVENT_QUIC_TOKENS_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_transport.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_transport.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_transport.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_transport.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,2164 @@
+
+/*
@@ -15010,9 +15029,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_transport.c
+{
+ (void) ngx_quic_write_uint64(dcid, key);
+}
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_transport.h
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_transport.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_transport.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_transport.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,398 @@
+
+/*
@@ -15412,9 +15431,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_transport.h
+void ngx_quic_dcid_encode_key(u_char *dcid, uint64_t key);
+
+#endif /* _NGX_EVENT_QUIC_TRANSPORT_H_INCLUDED_ */
-diff -r a63d0a70afea src/event/quic/ngx_event_quic_udp.c
+diff -r aa901551a7eb src/event/quic/ngx_event_quic_udp.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/event/quic/ngx_event_quic_udp.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/event/quic/ngx_event_quic_udp.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,473 @@
+
+/*
@@ -15889,9 +15908,9 @@ diff -r a63d0a70afea src/event/quic/ngx_event_quic_udp.c
+
+ return NULL;
+}
-diff -r a63d0a70afea src/http/modules/ngx_http_ssl_module.c
---- a/src/http/modules/ngx_http_ssl_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/modules/ngx_http_ssl_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/modules/ngx_http_ssl_module.c
+--- a/src/http/modules/ngx_http_ssl_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/modules/ngx_http_ssl_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -419,16 +419,19 @@ ngx_http_ssl_alpn_select(ngx_ssl_conn_t
unsigned char *outlen, const unsigned char *in, unsigned int inlen,
void *arg)
@@ -16016,9 +16035,9 @@ diff -r a63d0a70afea src/http/modules/ngx_http_ssl_module.c
return NGX_ERROR;
}
}
-diff -r a63d0a70afea src/http/ngx_http.c
---- a/src/http/ngx_http.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http.c
+--- a/src/http/ngx_http.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http.c Thu Oct 20 13:21:28 2022 -0400
@@ -1200,7 +1200,10 @@ ngx_http_add_listen(ngx_conf_t *cf, ngx_
port = cmcf->ports->elts;
for (i = 0; i < cmcf->ports->nelts; i++) {
@@ -16117,9 +16136,9 @@ diff -r a63d0a70afea src/http/ngx_http.c
addrs6[i].conf.proxy_protocol = addr[i].opt.proxy_protocol;
if (addr[i].hash.buckets == NULL
-diff -r a63d0a70afea src/http/ngx_http.h
---- a/src/http/ngx_http.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http.h
+--- a/src/http/ngx_http.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http.h Thu Oct 20 13:21:28 2022 -0400
@@ -20,6 +20,8 @@ typedef struct ngx_http_file_cache_s ng
typedef struct ngx_http_log_ctx_s ngx_http_log_ctx_t;
typedef struct ngx_http_chunked_s ngx_http_chunked_t;
@@ -16160,9 +16179,9 @@ diff -r a63d0a70afea src/http/ngx_http.h
ngx_int_t ngx_http_huff_decode(u_char *state, u_char *src, size_t len,
u_char **dst, ngx_uint_t last, ngx_log_t *log);
size_t ngx_http_huff_encode(u_char *src, size_t len, u_char *dst,
-diff -r a63d0a70afea src/http/ngx_http_core_module.c
---- a/src/http/ngx_http_core_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_core_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_core_module.c
+--- a/src/http/ngx_http_core_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_core_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -3989,6 +3989,7 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx
ngx_memzero(&lsopt, sizeof(ngx_http_listen_opt_t));
@@ -16204,9 +16223,9 @@ diff -r a63d0a70afea src/http/ngx_http_core_module.c
for (n = 0; n < u.naddrs; n++) {
lsopt.sockaddr = u.addrs[n].sockaddr;
lsopt.socklen = u.addrs[n].socklen;
-diff -r a63d0a70afea src/http/ngx_http_core_module.h
---- a/src/http/ngx_http_core_module.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_core_module.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_core_module.h
+--- a/src/http/ngx_http_core_module.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_core_module.h Thu Oct 20 13:21:28 2022 -0400
@@ -75,6 +75,7 @@ typedef struct {
unsigned wildcard:1;
unsigned ssl:1;
@@ -16239,9 +16258,9 @@ diff -r a63d0a70afea src/http/ngx_http_core_module.h
in_port_t port;
ngx_array_t addrs; /* array of ngx_http_conf_addr_t */
} ngx_http_conf_port_t;
-diff -r a63d0a70afea src/http/ngx_http_request.c
---- a/src/http/ngx_http_request.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_request.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_request.c
+--- a/src/http/ngx_http_request.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_request.c Thu Oct 20 13:21:28 2022 -0400
@@ -29,10 +29,6 @@ static ngx_int_t ngx_http_process_connec
static ngx_int_t ngx_http_process_user_agent(ngx_http_request_t *r,
ngx_table_elt_t *h, ngx_uint_t offset);
@@ -16379,9 +16398,9 @@ diff -r a63d0a70afea src/http/ngx_http_request.c
#if (NGX_STAT_STUB)
(void) ngx_atomic_fetch_add(ngx_stat_active, -1);
#endif
-diff -r a63d0a70afea src/http/ngx_http_request.h
---- a/src/http/ngx_http_request.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_request.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_request.h
+--- a/src/http/ngx_http_request.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_request.h Thu Oct 20 13:21:28 2022 -0400
@@ -24,6 +24,7 @@
#define NGX_HTTP_VERSION_10 1000
#define NGX_HTTP_VERSION_11 1001
@@ -16417,9 +16436,9 @@ diff -r a63d0a70afea src/http/ngx_http_request.h
unsigned expect_tested:1;
unsigned root_tested:1;
unsigned done:1;
-diff -r a63d0a70afea src/http/ngx_http_request_body.c
---- a/src/http/ngx_http_request_body.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_request_body.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_request_body.c
+--- a/src/http/ngx_http_request_body.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_request_body.c Thu Oct 20 13:21:28 2022 -0400
@@ -92,6 +92,13 @@ ngx_http_read_client_request_body(ngx_ht
}
#endif
@@ -16476,9 +16495,9 @@ diff -r a63d0a70afea src/http/ngx_http_request_body.c
)
{
return NGX_OK;
-diff -r a63d0a70afea src/http/ngx_http_upstream.c
---- a/src/http/ngx_http_upstream.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_upstream.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_upstream.c
+--- a/src/http/ngx_http_upstream.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_upstream.c Thu Oct 20 13:21:28 2022 -0400
@@ -521,6 +521,13 @@ ngx_http_upstream_init(ngx_http_request_
}
#endif
@@ -16513,9 +16532,9 @@ diff -r a63d0a70afea src/http/ngx_http_upstream.c
#if (NGX_HAVE_KQUEUE)
if (ngx_event_flags & NGX_USE_KQUEUE_EVENT) {
-diff -r a63d0a70afea src/http/ngx_http_write_filter_module.c
---- a/src/http/ngx_http_write_filter_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/http/ngx_http_write_filter_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/http/ngx_http_write_filter_module.c
+--- a/src/http/ngx_http_write_filter_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/http/ngx_http_write_filter_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -240,6 +240,10 @@ ngx_http_write_filter(ngx_http_request_t
r->out = NULL;
c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
@@ -16538,9 +16557,9 @@ diff -r a63d0a70afea src/http/ngx_http_write_filter_module.c
if ((c->buffered & NGX_LOWLEVEL_BUFFERED) && r->postponed == NULL) {
return NGX_AGAIN;
}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,123 @@
+
+/*
@@ -16665,9 +16684,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3.h
+diff -r aa901551a7eb src/http/v3/ngx_http_v3.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,166 @@
+
+/*
@@ -16835,9 +16854,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3.h
+
+
+#endif /* _NGX_HTTP_V3_H_INCLUDED_ */
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_encode.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_encode.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_encode.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_encode.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,304 @@
+
+/*
@@ -17143,9 +17162,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_encode.c
+
+ return (uintptr_t) p;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_encode.h
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_encode.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_encode.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_encode.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,34 @@
+
+/*
@@ -17181,9 +17200,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_encode.h
+
+
+#endif /* _NGX_HTTP_V3_ENCODE_H_INCLUDED_ */
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_filter_module.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_filter_module.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_filter_module.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_filter_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1536 @@
+
+/*
@@ -18721,9 +18740,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_filter_module.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_module.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_module.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_module.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,551 @@
+
+/*
@@ -19276,9 +19295,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_module.c
+
+ return NGX_CONF_OK;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_parse.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_parse.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_parse.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_parse.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,2013 @@
+
+/*
@@ -21293,9 +21312,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_parse.c
+ }
+ }
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_parse.h
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_parse.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_parse.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_parse.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,146 @@
+
+/*
@@ -21443,9 +21462,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_parse.h
+
+
+#endif /* _NGX_HTTP_V3_PARSE_H_INCLUDED_ */
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_request.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_request.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_request.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_request.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,1689 @@
+
+/*
@@ -23136,9 +23155,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_request.c
+
+ return rc;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_table.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_table.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_table.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_table.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,720 @@
+
+/*
@@ -23860,9 +23879,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_table.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_table.h
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_table.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_table.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_table.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,58 @@
+
+/*
@@ -23922,9 +23941,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_table.h
+
+
+#endif /* _NGX_HTTP_V3_TABLE_H_INCLUDED_ */
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_uni.c
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_uni.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_uni.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_uni.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,760 @@
+
+/*
@@ -24686,9 +24705,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_uni.c
+
+ return NGX_OK;
+}
-diff -r a63d0a70afea src/http/v3/ngx_http_v3_uni.h
+diff -r aa901551a7eb src/http/v3/ngx_http_v3_uni.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/http/v3/ngx_http_v3_uni.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/http/v3/ngx_http_v3_uni.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,38 @@
+
+/*
@@ -24728,9 +24747,9 @@ diff -r a63d0a70afea src/http/v3/ngx_http_v3_uni.h
+
+
+#endif /* _NGX_HTTP_V3_UNI_H_INCLUDED_ */
-diff -r a63d0a70afea src/os/unix/ngx_socket.h
---- a/src/os/unix/ngx_socket.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/os/unix/ngx_socket.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/os/unix/ngx_socket.h
+--- a/src/os/unix/ngx_socket.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/os/unix/ngx_socket.h Thu Oct 20 13:21:28 2022 -0400
@@ -13,6 +13,8 @@
@@ -24740,9 +24759,9 @@ diff -r a63d0a70afea src/os/unix/ngx_socket.h
typedef int ngx_socket_t;
-diff -r a63d0a70afea src/stream/ngx_stream.c
---- a/src/stream/ngx_stream.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream.c
+--- a/src/stream/ngx_stream.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream.c Thu Oct 20 13:21:28 2022 -0400
@@ -518,6 +518,24 @@ ngx_stream_optimize_servers(ngx_conf_t *
ls->reuseport = addr[i].opt.reuseport;
#endif
@@ -24788,9 +24807,9 @@ diff -r a63d0a70afea src/stream/ngx_stream.c
addrs6[i].conf.proxy_protocol = addr[i].opt.proxy_protocol;
addrs6[i].conf.addr_text = addr[i].opt.addr_text;
}
-diff -r a63d0a70afea src/stream/ngx_stream.h
---- a/src/stream/ngx_stream.h Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream.h Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream.h
+--- a/src/stream/ngx_stream.h Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream.h Thu Oct 20 13:21:28 2022 -0400
@@ -16,6 +16,10 @@
#include <ngx_stream_ssl_module.h>
#endif
@@ -24818,9 +24837,9 @@ diff -r a63d0a70afea src/stream/ngx_stream.h
unsigned proxy_protocol:1;
} ngx_stream_addr_conf_t;
-diff -r a63d0a70afea src/stream/ngx_stream_core_module.c
---- a/src/stream/ngx_stream_core_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream_core_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream_core_module.c
+--- a/src/stream/ngx_stream_core_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream_core_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -760,6 +760,29 @@ ngx_stream_core_listen(ngx_conf_t *cf, n
#endif
}
@@ -24864,9 +24883,9 @@ diff -r a63d0a70afea src/stream/ngx_stream_core_module.c
if (ls->so_keepalive) {
return "\"so_keepalive\" parameter is incompatible with \"udp\"";
}
-diff -r a63d0a70afea src/stream/ngx_stream_handler.c
---- a/src/stream/ngx_stream_handler.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream_handler.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream_handler.c
+--- a/src/stream/ngx_stream_handler.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream_handler.c Thu Oct 20 13:21:28 2022 -0400
@@ -129,6 +129,10 @@ ngx_stream_init_connection(ngx_connectio
s->ssl = addr_conf->ssl;
#endif
@@ -24900,9 +24919,9 @@ diff -r a63d0a70afea src/stream/ngx_stream_handler.c
rev = c->read;
rev->handler = ngx_stream_session_handler;
-diff -r a63d0a70afea src/stream/ngx_stream_proxy_module.c
---- a/src/stream/ngx_stream_proxy_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream_proxy_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream_proxy_module.c
+--- a/src/stream/ngx_stream_proxy_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream_proxy_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -1771,6 +1771,21 @@ ngx_stream_proxy_process(ngx_stream_sess
if (dst->type == SOCK_STREAM && pscf->half_close
&& src->read->eof && !u->half_closed && !dst->buffered)
@@ -24925,9 +24944,9 @@ diff -r a63d0a70afea src/stream/ngx_stream_proxy_module.c
if (ngx_shutdown_socket(dst->fd, NGX_WRITE_SHUTDOWN) == -1) {
ngx_connection_error(c, ngx_socket_errno,
ngx_shutdown_socket_n " failed");
-diff -r a63d0a70afea src/stream/ngx_stream_quic_module.c
+diff -r aa901551a7eb src/stream/ngx_stream_quic_module.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/stream/ngx_stream_quic_module.c Fri Sep 16 14:00:14 2022 -0400
++++ b/src/stream/ngx_stream_quic_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,377 @@
+
+/*
@@ -25306,9 +25325,9 @@ diff -r a63d0a70afea src/stream/ngx_stream_quic_module.c
+
+ return NGX_CONF_ERROR;
+}
-diff -r a63d0a70afea src/stream/ngx_stream_quic_module.h
+diff -r aa901551a7eb src/stream/ngx_stream_quic_module.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/src/stream/ngx_stream_quic_module.h Fri Sep 16 14:00:14 2022 -0400
++++ b/src/stream/ngx_stream_quic_module.h Thu Oct 20 13:21:28 2022 -0400
@@ -0,0 +1,20 @@
+
+/*
@@ -25330,9 +25349,9 @@ diff -r a63d0a70afea src/stream/ngx_stream_quic_module.h
+
+
+#endif /* _NGX_STREAM_QUIC_H_INCLUDED_ */
-diff -r a63d0a70afea src/stream/ngx_stream_ssl_module.c
---- a/src/stream/ngx_stream_ssl_module.c Tue Jul 19 17:05:27 2022 +0300
-+++ b/src/stream/ngx_stream_ssl_module.c Fri Sep 16 14:00:14 2022 -0400
+diff -r aa901551a7eb src/stream/ngx_stream_ssl_module.c
+--- a/src/stream/ngx_stream_ssl_module.c Wed Oct 19 10:56:20 2022 +0300
++++ b/src/stream/ngx_stream_ssl_module.c Thu Oct 20 13:21:28 2022 -0400
@@ -1194,7 +1194,10 @@ ngx_stream_ssl_conf_command_check(ngx_co
static ngx_int_t
ngx_stream_ssl_init(ngx_conf_t *cf)