Skip to content

Commit fee142d

Browse files
committed
update nginx to v1.26.1
1 parent 6b612c8 commit fee142d

File tree

244 files changed

+22161
-11360
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+22161
-11360
lines changed

CHANGES

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,49 @@
11

2+
Changes with nginx 1.27.0 29 May 2024
3+
4+
*) Security: when using HTTP/3, processing of a specially crafted QUIC
5+
session might cause a worker process crash, worker process memory
6+
disclosure on systems with MTU larger than 4096 bytes, or might have
7+
potential other impact (CVE-2024-32760, CVE-2024-31079,
8+
CVE-2024-35200, CVE-2024-34161).
9+
Thanks to Nils Bars of CISPA.
10+
11+
*) Feature: variables support in the "proxy_limit_rate",
12+
"fastcgi_limit_rate", "scgi_limit_rate", and "uwsgi_limit_rate"
13+
directives.
14+
15+
*) Bugfix: reduced memory consumption for long-lived requests if "gzip",
16+
"gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.
17+
18+
*) Bugfix: nginx could not be built by gcc 14 if the --with-atomic
19+
option was used.
20+
Thanks to Edgar Bonet.
21+
22+
*) Bugfixes in HTTP/3.
23+
24+
25+
Changes with nginx 1.25.5 16 Apr 2024
26+
27+
*) Feature: virtual servers in the stream module.
28+
29+
*) Feature: the ngx_stream_pass_module.
30+
31+
*) Feature: the "deferred", "accept_filter", and "setfib" parameters of
32+
the "listen" directive in the stream module.
33+
34+
*) Feature: cache line size detection for some architectures.
35+
Thanks to Piotr Sikora.
36+
37+
*) Feature: support for Homebrew on Apple Silicon.
38+
Thanks to Piotr Sikora.
39+
40+
*) Bugfix: Windows cross-compilation bugfixes and improvements.
41+
Thanks to Piotr Sikora.
42+
43+
*) Bugfix: unexpected connection closure while using 0-RTT in QUIC.
44+
Thanks to Vladimir Khomutov.
45+
46+
247
Changes with nginx 1.25.4 14 Feb 2024
348

449
*) Security: when using HTTP/3 a segmentation fault might occur in a

CHANGES.ru

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,51 @@
11

2+
Изменения в nginx 1.27.0 29.05.2024
3+
4+
*) Безопасность: при использовании HTTP/3 обработка специально созданной
5+
QUIC-сессии могла приводить к падению рабочего процесса, отправке
6+
клиенту содержимого памяти рабочего процесса на системах с MTU больше
7+
4096 байт, а также потенциально могла иметь другие последствия
8+
(CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).
9+
Спасибо Nils Bars из CISPA.
10+
11+
*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
12+
scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.
13+
14+
*) Исправление: уменьшено потребление памяти для долгоживущих запросов,
15+
если используются директивы gzip, gunzip, ssi, sub_filter или
16+
grpc_pass.
17+
18+
*) Исправление: nginx не собирался gcc 14, если использовался параметр
19+
--with-atomic.
20+
Спасибо Edgar Bonet.
21+
22+
*) Исправления в HTTP/3.
23+
24+
25+
Изменения в nginx 1.25.5 16.04.2024
26+
27+
*) Добавление: виртуальные сервера в модуле stream.
28+
29+
*) Добавление: модуль ngx_stream_pass_module.
30+
31+
*) Добавление: параметры deferred, accept_filter и setfib директивы
32+
listen в модуле stream.
33+
34+
*) Добавление: определение размера строки кеша процессора для некоторых
35+
архитектур.
36+
Спасибо Piotr Sikora.
37+
38+
*) Добавление: поддержка Homebrew на Apple Silicon.
39+
Спасибо Piotr Sikora.
40+
41+
*) Исправление: улучшения и исправления кросс-компиляции для Windows.
42+
Спасибо Piotr Sikora.
43+
44+
*) Исправление: неожиданное закрытие соединения при использовании 0-RTT
45+
в QUIC.
46+
Спасибо Владимиру Хомутову.
47+
48+
249
Изменения в nginx 1.25.4 14.02.2024
350

451
*) Безопасность: при использовании HTTP/3 в рабочем процессе мог

app/java/druid-1.2.6.jar

-3.46 MB
Binary file not shown.

app/java/hi-nginx-java.jar

-9.53 KB
Binary file not shown.

app/java/jinjava-2.6.0.jar

-743 KB
Binary file not shown.
-608 KB
Binary file not shown.
-2.35 MB
Binary file not shown.

auto/install

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ install: build $NGX_INSTALL_PERL_MODULES
114114
test ! -f '\$(DESTDIR)$NGX_SBIN_PATH' \\
115115
|| mv '\$(DESTDIR)$NGX_SBIN_PATH' \\
116116
'\$(DESTDIR)$NGX_SBIN_PATH.old'
117-
cp $NGX_OBJS/nginx '\$(DESTDIR)$NGX_SBIN_PATH'
117+
cp $NGX_OBJS/nginx$ngx_binext '\$(DESTDIR)$NGX_SBIN_PATH'
118118

119119
test -d '\$(DESTDIR)$NGX_CONF_PREFIX' \\
120120
|| mkdir -p '\$(DESTDIR)$NGX_CONF_PREFIX'

auto/lib/geoip/conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,23 @@ if [ $ngx_found = no ]; then
6464
fi
6565

6666

67+
if [ $ngx_found = no ]; then
68+
69+
# Homebrew on Apple Silicon
70+
71+
ngx_feature="GeoIP library in /opt/homebrew/"
72+
ngx_feature_path="/opt/homebrew/include"
73+
74+
if [ $NGX_RPATH = YES ]; then
75+
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lGeoIP"
76+
else
77+
ngx_feature_libs="-L/opt/homebrew/lib -lGeoIP"
78+
fi
79+
80+
. auto/feature
81+
fi
82+
83+
6784
if [ $ngx_found = yes ]; then
6885

6986
CORE_INCS="$CORE_INCS $ngx_feature_path"

auto/lib/google-perftools/conf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,22 @@ if [ $ngx_found = no ]; then
4646
fi
4747

4848

49+
if [ $ngx_found = no ]; then
50+
51+
# Homebrew on Apple Silicon
52+
53+
ngx_feature="Google perftools in /opt/homebrew/"
54+
55+
if [ $NGX_RPATH = YES ]; then
56+
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lprofiler"
57+
else
58+
ngx_feature_libs="-L/opt/homebrew/lib -lprofiler"
59+
fi
60+
61+
. auto/feature
62+
fi
63+
64+
4965
if [ $ngx_found = yes ]; then
5066
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
5167

auto/lib/libatomic/conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ else
1919
#include <atomic_ops.h>"
2020
ngx_feature_path=
2121
ngx_feature_libs="-latomic_ops"
22-
ngx_feature_test="long n = 0;
22+
ngx_feature_test="AO_t n = 0;
2323
if (!AO_compare_and_swap(&n, 0, 1))
2424
return 1;
2525
if (AO_fetch_and_add(&n, 1) != 1)

auto/lib/libgd/conf

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,23 @@ if [ $ngx_found = no ]; then
6565
fi
6666

6767

68+
if [ $ngx_found = no ]; then
69+
70+
# Homebrew on Apple Silicon
71+
72+
ngx_feature="GD library in /opt/homebrew/"
73+
ngx_feature_path="/opt/homebrew/include"
74+
75+
if [ $NGX_RPATH = YES ]; then
76+
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lgd"
77+
else
78+
ngx_feature_libs="-L/opt/homebrew/lib -lgd"
79+
fi
80+
81+
. auto/feature
82+
fi
83+
84+
6885
if [ $ngx_found = yes ]; then
6986

7087
CORE_INCS="$CORE_INCS $ngx_feature_path"

auto/lib/openssl/conf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,24 @@ else
122122
. auto/feature
123123
fi
124124

125+
if [ $ngx_found = no ]; then
126+
127+
# Homebrew on Apple Silicon
128+
129+
ngx_feature="OpenSSL library in /opt/homebrew/"
130+
ngx_feature_path="/opt/homebrew/include"
131+
132+
if [ $NGX_RPATH = YES ]; then
133+
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lssl -lcrypto"
134+
else
135+
ngx_feature_libs="-L/opt/homebrew/lib -lssl -lcrypto"
136+
fi
137+
138+
ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"
139+
140+
. auto/feature
141+
fi
142+
125143
if [ $ngx_found = yes ]; then
126144
have=NGX_SSL . auto/have
127145
CORE_INCS="$CORE_INCS $ngx_feature_path"

auto/lib/pcre/conf

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,22 @@ else
182182
. auto/feature
183183
fi
184184

185+
if [ $ngx_found = no ]; then
186+
187+
# Homebrew on Apple Silicon
188+
189+
ngx_feature="PCRE library in /opt/homebrew/"
190+
ngx_feature_path="/opt/homebrew/include"
191+
192+
if [ $NGX_RPATH = YES ]; then
193+
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lpcre"
194+
else
195+
ngx_feature_libs="-L/opt/homebrew/lib -lpcre"
196+
fi
197+
198+
. auto/feature
199+
fi
200+
185201
if [ $ngx_found = yes ]; then
186202
CORE_INCS="$CORE_INCS $ngx_feature_path"
187203
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

auto/modules

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,6 +1166,16 @@ if [ $STREAM != NO ]; then
11661166
. auto/module
11671167
fi
11681168

1169+
if [ $STREAM_PASS = YES ]; then
1170+
ngx_module_name=ngx_stream_pass_module
1171+
ngx_module_deps=
1172+
ngx_module_srcs=src/stream/ngx_stream_pass_module.c
1173+
ngx_module_libs=
1174+
ngx_module_link=$STREAM_PASS
1175+
1176+
. auto/module
1177+
fi
1178+
11691179
if [ $STREAM_SET = YES ]; then
11701180
ngx_module_name=ngx_stream_set_module
11711181
ngx_module_deps=

auto/options

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ STREAM_GEOIP=NO
131131
STREAM_MAP=YES
132132
STREAM_SPLIT_CLIENTS=YES
133133
STREAM_RETURN=YES
134+
STREAM_PASS=YES
134135
STREAM_SET=YES
135136
STREAM_UPSTREAM_HASH=YES
136137
STREAM_UPSTREAM_LEAST_CONN=YES
@@ -343,6 +344,7 @@ use the \"--with-mail_ssl_module\" option instead"
343344
--without-stream_split_clients_module)
344345
STREAM_SPLIT_CLIENTS=NO ;;
345346
--without-stream_return_module) STREAM_RETURN=NO ;;
347+
--without-stream_pass_module) STREAM_PASS=NO ;;
346348
--without-stream_set_module) STREAM_SET=NO ;;
347349
--without-stream_upstream_hash_module)
348350
STREAM_UPSTREAM_HASH=NO ;;
@@ -565,6 +567,7 @@ cat << END
565567
--without-stream_split_clients_module
566568
disable ngx_stream_split_clients_module
567569
--without-stream_return_module disable ngx_stream_return_module
570+
--without-stream_pass_module disable ngx_stream_pass_module
568571
--without-stream_set_module disable ngx_stream_set_module
569572
--without-stream_upstream_hash_module
570573
disable ngx_stream_upstream_hash_module

auto/os/conf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,21 @@ case "$NGX_MACHINE" in
115115
NGX_MACH_CACHE_LINE=64
116116
;;
117117

118+
ppc64* | powerpc64*)
119+
have=NGX_ALIGNMENT value=16 . auto/define
120+
NGX_MACH_CACHE_LINE=128
121+
;;
122+
123+
riscv64)
124+
have=NGX_ALIGNMENT value=16 . auto/define
125+
NGX_MACH_CACHE_LINE=64
126+
;;
127+
128+
s390x)
129+
have=NGX_ALIGNMENT value=16 . auto/define
130+
NGX_MACH_CACHE_LINE=256
131+
;;
132+
118133
*)
119134
have=NGX_ALIGNMENT value=16 . auto/define
120135
NGX_MACH_CACHE_LINE=32

auto/os/linux

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ ngx_feature_test="struct crypt_data cd;
228228
crypt_r(\"key\", \"salt\", &cd);"
229229
. auto/feature
230230

231+
if [ $ngx_found = yes ]; then
232+
CRYPT_LIB="-lcrypt"
233+
fi
234+
231235

232236
ngx_include="sys/vfs.h"; . auto/include
233237

auto/os/win32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ngx_binext=".exe"
1818

1919
case "$NGX_CC_NAME" in
2020

21-
gcc)
21+
clang | gcc)
2222
CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32"
2323
MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols"
2424
MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a"

module/lib/jsoncons/allocator_holder.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2013-2023 Daniel Parker
1+
// Copyright 2013-2024 Daniel Parker
22
// Distributed under the Boost license, Version 1.0.
33
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
44

module/lib/jsoncons/allocator_set.hpp

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright 2013-2024 Daniel Parker
2+
// Distributed under the Boost license, Version 1.0.
3+
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4+
5+
// See https://github.com/danielaparker/jsoncons for latest version
6+
7+
#ifndef JSONCONS_ALLOCATOR_STRATEGY_HPP
8+
#define JSONCONS_ALLOCATOR_STRATEGY_HPP
9+
10+
#include <memory>
11+
#include <jsoncons/tag_type.hpp>
12+
13+
namespace jsoncons {
14+
15+
template <class Allocator,class TempAllocator>
16+
class allocator_set
17+
{
18+
Allocator result_alloc_;
19+
TempAllocator temp_alloc_;
20+
public:
21+
using allocator_type = Allocator;
22+
using temp_allocator_type = TempAllocator;
23+
24+
allocator_set(const Allocator& alloc=Allocator(),
25+
const TempAllocator& temp_alloc=TempAllocator())
26+
: result_alloc_(alloc), temp_alloc_(temp_alloc)
27+
{
28+
}
29+
30+
allocator_set(const allocator_set&) = default;
31+
allocator_set(allocator_set&&) = default;
32+
allocator_set& operator=(const allocator_set&) = delete;
33+
allocator_set& operator=(allocator_set&&) = delete;
34+
~allocator_set() = default;
35+
36+
Allocator get_allocator() const {return result_alloc_;}
37+
TempAllocator get_temp_allocator() const {return temp_alloc_;}
38+
};
39+
40+
inline
41+
allocator_set<std::allocator<char>,std::allocator<char>> combine_allocators()
42+
{
43+
return allocator_set<std::allocator<char>,std::allocator<char>>(std::allocator<char>(), std::allocator<char>());
44+
}
45+
46+
template <class Allocator>
47+
allocator_set<Allocator,std::allocator<char>> combine_allocators(const Allocator& alloc)
48+
{
49+
return allocator_set<Allocator,std::allocator<char>>(alloc, std::allocator<char>());
50+
}
51+
52+
template <class Allocator,class TempAllocator>
53+
allocator_set<Allocator,TempAllocator> combine_allocators(const Allocator& alloc, const TempAllocator& temp_alloc)
54+
{
55+
return allocator_set<Allocator,TempAllocator>(alloc, temp_alloc);
56+
}
57+
58+
template <class TempAllocator>
59+
allocator_set<std::allocator<char>,TempAllocator> temp_allocator_only(const TempAllocator& temp_alloc)
60+
{
61+
return allocator_set<std::allocator<char>,TempAllocator>(std::allocator<char>(), temp_alloc);
62+
}
63+
64+
} // namespace jsoncons
65+
66+
#endif

0 commit comments

Comments
 (0)