Skip to content

Commit

Permalink
update nginx to v1.26.1
Browse files Browse the repository at this point in the history
  • Loading branch information
webcpp committed Jun 3, 2024
1 parent 6b612c8 commit fee142d
Show file tree
Hide file tree
Showing 244 changed files with 22,161 additions and 11,360 deletions.
45 changes: 45 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,4 +1,49 @@

Changes with nginx 1.27.0 29 May 2024

*) Security: when using HTTP/3, processing of a specially crafted QUIC
session might cause a worker process crash, worker process memory
disclosure on systems with MTU larger than 4096 bytes, or might have
potential other impact (CVE-2024-32760, CVE-2024-31079,
CVE-2024-35200, CVE-2024-34161).
Thanks to Nils Bars of CISPA.

*) Feature: variables support in the "proxy_limit_rate",
"fastcgi_limit_rate", "scgi_limit_rate", and "uwsgi_limit_rate"
directives.

*) Bugfix: reduced memory consumption for long-lived requests if "gzip",
"gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.

*) Bugfix: nginx could not be built by gcc 14 if the --with-atomic
option was used.
Thanks to Edgar Bonet.

*) Bugfixes in HTTP/3.


Changes with nginx 1.25.5 16 Apr 2024

*) Feature: virtual servers in the stream module.

*) Feature: the ngx_stream_pass_module.

*) Feature: the "deferred", "accept_filter", and "setfib" parameters of
the "listen" directive in the stream module.

*) Feature: cache line size detection for some architectures.
Thanks to Piotr Sikora.

*) Feature: support for Homebrew on Apple Silicon.
Thanks to Piotr Sikora.

*) Bugfix: Windows cross-compilation bugfixes and improvements.
Thanks to Piotr Sikora.

*) Bugfix: unexpected connection closure while using 0-RTT in QUIC.
Thanks to Vladimir Khomutov.


Changes with nginx 1.25.4 14 Feb 2024

*) Security: when using HTTP/3 a segmentation fault might occur in a
Expand Down
47 changes: 47 additions & 0 deletions CHANGES.ru
Original file line number Diff line number Diff line change
@@ -1,4 +1,51 @@

Изменения в nginx 1.27.0 29.05.2024

*) Безопасность: при использовании HTTP/3 обработка специально созданной
QUIC-сессии могла приводить к падению рабочего процесса, отправке
клиенту содержимого памяти рабочего процесса на системах с MTU больше
4096 байт, а также потенциально могла иметь другие последствия
(CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).
Спасибо Nils Bars из CISPA.

*) Добавление: директивы proxy_limit_rate, fastcgi_limit_rate,
scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.

*) Исправление: уменьшено потребление памяти для долгоживущих запросов,
если используются директивы gzip, gunzip, ssi, sub_filter или
grpc_pass.

*) Исправление: nginx не собирался gcc 14, если использовался параметр
--with-atomic.
Спасибо Edgar Bonet.

*) Исправления в HTTP/3.


Изменения в nginx 1.25.5 16.04.2024

*) Добавление: виртуальные сервера в модуле stream.

*) Добавление: модуль ngx_stream_pass_module.

*) Добавление: параметры deferred, accept_filter и setfib директивы
listen в модуле stream.

*) Добавление: определение размера строки кеша процессора для некоторых
архитектур.
Спасибо Piotr Sikora.

*) Добавление: поддержка Homebrew на Apple Silicon.
Спасибо Piotr Sikora.

*) Исправление: улучшения и исправления кросс-компиляции для Windows.
Спасибо Piotr Sikora.

*) Исправление: неожиданное закрытие соединения при использовании 0-RTT
в QUIC.
Спасибо Владимиру Хомутову.


Изменения в nginx 1.25.4 14.02.2024

*) Безопасность: при использовании HTTP/3 в рабочем процессе мог
Expand Down
Binary file removed app/java/druid-1.2.6.jar
Binary file not shown.
Binary file removed app/java/hi-nginx-java.jar
Binary file not shown.
Binary file removed app/java/jinjava-2.6.0.jar
Binary file not shown.
Binary file removed app/java/mariadb-java-client-2.7.4.jar
Binary file not shown.
Binary file removed app/java/mysql-connector-java-8.0.26.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion auto/install
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ install: build $NGX_INSTALL_PERL_MODULES
test ! -f '\$(DESTDIR)$NGX_SBIN_PATH' \\
|| mv '\$(DESTDIR)$NGX_SBIN_PATH' \\
'\$(DESTDIR)$NGX_SBIN_PATH.old'
cp $NGX_OBJS/nginx '\$(DESTDIR)$NGX_SBIN_PATH'
cp $NGX_OBJS/nginx$ngx_binext '\$(DESTDIR)$NGX_SBIN_PATH'

test -d '\$(DESTDIR)$NGX_CONF_PREFIX' \\
|| mkdir -p '\$(DESTDIR)$NGX_CONF_PREFIX'
Expand Down
17 changes: 17 additions & 0 deletions auto/lib/geoip/conf
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,23 @@ if [ $ngx_found = no ]; then
fi


if [ $ngx_found = no ]; then

# Homebrew on Apple Silicon

ngx_feature="GeoIP library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"

if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lGeoIP"
else
ngx_feature_libs="-L/opt/homebrew/lib -lGeoIP"
fi

. auto/feature
fi


if [ $ngx_found = yes ]; then

CORE_INCS="$CORE_INCS $ngx_feature_path"
Expand Down
16 changes: 16 additions & 0 deletions auto/lib/google-perftools/conf
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,22 @@ if [ $ngx_found = no ]; then
fi


if [ $ngx_found = no ]; then

# Homebrew on Apple Silicon

ngx_feature="Google perftools in /opt/homebrew/"

if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lprofiler"
else
ngx_feature_libs="-L/opt/homebrew/lib -lprofiler"
fi

. auto/feature
fi


if [ $ngx_found = yes ]; then
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"

Expand Down
2 changes: 1 addition & 1 deletion auto/lib/libatomic/conf
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ else
#include <atomic_ops.h>"
ngx_feature_path=
ngx_feature_libs="-latomic_ops"
ngx_feature_test="long n = 0;
ngx_feature_test="AO_t n = 0;
if (!AO_compare_and_swap(&n, 0, 1))
return 1;
if (AO_fetch_and_add(&n, 1) != 1)
Expand Down
17 changes: 17 additions & 0 deletions auto/lib/libgd/conf
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,23 @@ if [ $ngx_found = no ]; then
fi


if [ $ngx_found = no ]; then

# Homebrew on Apple Silicon

ngx_feature="GD library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"

if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lgd"
else
ngx_feature_libs="-L/opt/homebrew/lib -lgd"
fi

. auto/feature
fi


if [ $ngx_found = yes ]; then

CORE_INCS="$CORE_INCS $ngx_feature_path"
Expand Down
18 changes: 18 additions & 0 deletions auto/lib/openssl/conf
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,24 @@ else
. auto/feature
fi

if [ $ngx_found = no ]; then

# Homebrew on Apple Silicon

ngx_feature="OpenSSL library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"

if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lssl -lcrypto"
else
ngx_feature_libs="-L/opt/homebrew/lib -lssl -lcrypto"
fi

ngx_feature_libs="$ngx_feature_libs $NGX_LIBDL $NGX_LIBPTHREAD"

. auto/feature
fi

if [ $ngx_found = yes ]; then
have=NGX_SSL . auto/have
CORE_INCS="$CORE_INCS $ngx_feature_path"
Expand Down
16 changes: 16 additions & 0 deletions auto/lib/pcre/conf
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,22 @@ else
. auto/feature
fi

if [ $ngx_found = no ]; then

# Homebrew on Apple Silicon

ngx_feature="PCRE library in /opt/homebrew/"
ngx_feature_path="/opt/homebrew/include"

if [ $NGX_RPATH = YES ]; then
ngx_feature_libs="-R/opt/homebrew/lib -L/opt/homebrew/lib -lpcre"
else
ngx_feature_libs="-L/opt/homebrew/lib -lpcre"
fi

. auto/feature
fi

if [ $ngx_found = yes ]; then
CORE_INCS="$CORE_INCS $ngx_feature_path"
CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
Expand Down
10 changes: 10 additions & 0 deletions auto/modules
Original file line number Diff line number Diff line change
Expand Up @@ -1166,6 +1166,16 @@ if [ $STREAM != NO ]; then
. auto/module
fi

if [ $STREAM_PASS = YES ]; then
ngx_module_name=ngx_stream_pass_module
ngx_module_deps=
ngx_module_srcs=src/stream/ngx_stream_pass_module.c
ngx_module_libs=
ngx_module_link=$STREAM_PASS

. auto/module
fi

if [ $STREAM_SET = YES ]; then
ngx_module_name=ngx_stream_set_module
ngx_module_deps=
Expand Down
3 changes: 3 additions & 0 deletions auto/options
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ STREAM_GEOIP=NO
STREAM_MAP=YES
STREAM_SPLIT_CLIENTS=YES
STREAM_RETURN=YES
STREAM_PASS=YES
STREAM_SET=YES
STREAM_UPSTREAM_HASH=YES
STREAM_UPSTREAM_LEAST_CONN=YES
Expand Down Expand Up @@ -343,6 +344,7 @@ use the \"--with-mail_ssl_module\" option instead"
--without-stream_split_clients_module)
STREAM_SPLIT_CLIENTS=NO ;;
--without-stream_return_module) STREAM_RETURN=NO ;;
--without-stream_pass_module) STREAM_PASS=NO ;;
--without-stream_set_module) STREAM_SET=NO ;;
--without-stream_upstream_hash_module)
STREAM_UPSTREAM_HASH=NO ;;
Expand Down Expand Up @@ -565,6 +567,7 @@ cat << END
--without-stream_split_clients_module
disable ngx_stream_split_clients_module
--without-stream_return_module disable ngx_stream_return_module
--without-stream_pass_module disable ngx_stream_pass_module
--without-stream_set_module disable ngx_stream_set_module
--without-stream_upstream_hash_module
disable ngx_stream_upstream_hash_module
Expand Down
15 changes: 15 additions & 0 deletions auto/os/conf
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,21 @@ case "$NGX_MACHINE" in
NGX_MACH_CACHE_LINE=64
;;

ppc64* | powerpc64*)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=128
;;

riscv64)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=64
;;

s390x)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=256
;;

*)
have=NGX_ALIGNMENT value=16 . auto/define
NGX_MACH_CACHE_LINE=32
Expand Down
4 changes: 4 additions & 0 deletions auto/os/linux
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,10 @@ ngx_feature_test="struct crypt_data cd;
crypt_r(\"key\", \"salt\", &cd);"
. auto/feature

if [ $ngx_found = yes ]; then
CRYPT_LIB="-lcrypt"
fi


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

Expand Down
2 changes: 1 addition & 1 deletion auto/os/win32
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ngx_binext=".exe"

case "$NGX_CC_NAME" in

gcc)
clang | gcc)
CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32"
MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols"
MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a"
Expand Down
2 changes: 1 addition & 1 deletion module/lib/jsoncons/allocator_holder.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2013-2023 Daniel Parker
// Copyright 2013-2024 Daniel Parker
// Distributed under the Boost license, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Expand Down
66 changes: 66 additions & 0 deletions module/lib/jsoncons/allocator_set.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Copyright 2013-2024 Daniel Parker
// Distributed under the Boost license, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

// See https://github.com/danielaparker/jsoncons for latest version

#ifndef JSONCONS_ALLOCATOR_STRATEGY_HPP
#define JSONCONS_ALLOCATOR_STRATEGY_HPP

#include <memory>
#include <jsoncons/tag_type.hpp>

namespace jsoncons {

template <class Allocator,class TempAllocator>
class allocator_set
{
Allocator result_alloc_;
TempAllocator temp_alloc_;
public:
using allocator_type = Allocator;
using temp_allocator_type = TempAllocator;

allocator_set(const Allocator& alloc=Allocator(),
const TempAllocator& temp_alloc=TempAllocator())
: result_alloc_(alloc), temp_alloc_(temp_alloc)
{
}

allocator_set(const allocator_set&) = default;
allocator_set(allocator_set&&) = default;
allocator_set& operator=(const allocator_set&) = delete;
allocator_set& operator=(allocator_set&&) = delete;
~allocator_set() = default;

Allocator get_allocator() const {return result_alloc_;}
TempAllocator get_temp_allocator() const {return temp_alloc_;}
};

inline
allocator_set<std::allocator<char>,std::allocator<char>> combine_allocators()
{
return allocator_set<std::allocator<char>,std::allocator<char>>(std::allocator<char>(), std::allocator<char>());
}

template <class Allocator>
allocator_set<Allocator,std::allocator<char>> combine_allocators(const Allocator& alloc)
{
return allocator_set<Allocator,std::allocator<char>>(alloc, std::allocator<char>());
}

template <class Allocator,class TempAllocator>
allocator_set<Allocator,TempAllocator> combine_allocators(const Allocator& alloc, const TempAllocator& temp_alloc)
{
return allocator_set<Allocator,TempAllocator>(alloc, temp_alloc);
}

template <class TempAllocator>
allocator_set<std::allocator<char>,TempAllocator> temp_allocator_only(const TempAllocator& temp_alloc)
{
return allocator_set<std::allocator<char>,TempAllocator>(std::allocator<char>(), temp_alloc);
}

} // namespace jsoncons

#endif
Loading

0 comments on commit fee142d

Please sign in to comment.