diff --git a/images/nginx/rootfs/build.sh b/images/nginx/rootfs/build.sh index be4cbda9c..46f304ea5 100755 --- a/images/nginx/rootfs/build.sh +++ b/images/nginx/rootfs/build.sh @@ -18,7 +18,7 @@ set -o errexit set -o nounset set -o pipefail -export NGINX_VERSION=1.19.9 +export NGINX_VERSION=1.20.1 # Check for recent changes: https://github.com/vision5/ngx_devel_kit/compare/v0.3.1...master export NDK_VERSION=0.3.1 @@ -197,7 +197,7 @@ mkdir --verbose -p "$BUILD_PATH" cd "$BUILD_PATH" # download, verify and extract the source files -get_src 2e35dff06a9826e8aca940e9e8be46b7e4b12c19a48d55bfc2dc28fc9cc7d841 \ +get_src e462e11533d5c30baa05df7652160ff5979591d291736cfa5edb9fd2edb48c49 \ "https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz" get_src 0e971105e210d272a497567fa2e2c256f4e39b845a5ba80d373e26ba1abfbd85 \ diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-balancer_status_code.patch b/images/nginx/rootfs/patches/nginx-1.19.3-balancer_status_code.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-balancer_status_code.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-balancer_status_code.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-cache_manager_exit.patch b/images/nginx/rootfs/patches/nginx-1.19.3-cache_manager_exit.patch similarity index 96% rename from images/nginx/rootfs/patches/nginx-1.19.9-cache_manager_exit.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-cache_manager_exit.patch index 91ee63a26..f1f81da2c 100644 --- a/images/nginx/rootfs/patches/nginx-1.19.9-cache_manager_exit.patch +++ b/images/nginx/rootfs/patches/nginx-1.19.3-cache_manager_exit.patch @@ -8,7 +8,7 @@ Cache: gracefully exit the cache manager process. diff -r dea321e5c021 -r f64218e1ac96 src/os/unix/ngx_process_cycle.c --- a/src/os/unix/ngx_process_cycle.c Thu Oct 31 18:23:49 2013 +0400 +++ b/src/os/unix/ngx_process_cycle.c Mon Nov 04 12:48:50 2013 -0800 -@@ -1134,7 +1134,7 @@ +@@ -1335,7 +1335,7 @@ if (ngx_terminate || ngx_quit) { ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting"); diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-delayed_posted_events.patch b/images/nginx/rootfs/patches/nginx-1.19.3-delayed_posted_events.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-delayed_posted_events.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-delayed_posted_events.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-hash_overflow.patch b/images/nginx/rootfs/patches/nginx-1.19.3-hash_overflow.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-hash_overflow.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-hash_overflow.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-init_cycle_pool_release.patch b/images/nginx/rootfs/patches/nginx-1.19.3-init_cycle_pool_release.patch similarity index 62% rename from images/nginx/rootfs/patches/nginx-1.19.9-init_cycle_pool_release.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-init_cycle_pool_release.patch index aa2df4660..b6f46674f 100644 --- a/images/nginx/rootfs/patches/nginx-1.19.9-init_cycle_pool_release.patch +++ b/images/nginx/rootfs/patches/nginx-1.19.3-init_cycle_pool_release.patch @@ -1,6 +1,6 @@ -diff -rup nginx-1.19.9/src/core/nginx.c nginx-1.19.9-patched/src/core/nginx.c ---- nginx-1.19.9/src/core/nginx.c 2017-12-17 00:00:38.136470108 -0800 -+++ nginx-1.19.9-patched/src/core/nginx.c 2017-12-16 23:59:51.680958322 -0800 +diff -rup nginx-1.19.3/src/core/nginx.c nginx-1.19.3-patched/src/core/nginx.c +--- nginx-1.19.3/src/core/nginx.c 2017-12-17 00:00:38.136470108 -0800 ++++ nginx-1.19.3-patched/src/core/nginx.c 2017-12-16 23:59:51.680958322 -0800 @@ -186,6 +186,7 @@ static u_char *ngx_prefix; static u_char *ngx_conf_file; static u_char *ngx_conf_params; @@ -18,9 +18,9 @@ diff -rup nginx-1.19.9/src/core/nginx.c nginx-1.19.9-patched/src/core/nginx.c if (ngx_save_argv(&init_cycle, argc, argv) != NGX_OK) { return 1; } -diff -rup nginx-1.19.9/src/core/ngx_core.h nginx-1.19.9-patched/src/core/ngx_core.h ---- nginx-1.19.9/src/core/ngx_core.h 2017-10-10 08:22:51.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_core.h 2017-12-16 23:59:51.679958370 -0800 +diff -rup nginx-1.19.3/src/core/ngx_core.h nginx-1.19.3-patched/src/core/ngx_core.h +--- nginx-1.19.3/src/core/ngx_core.h 2017-10-10 08:22:51.000000000 -0700 ++++ nginx-1.19.3-patched/src/core/ngx_core.h 2017-12-16 23:59:51.679958370 -0800 @@ -108,4 +108,6 @@ void ngx_cpuinfo(void); #define NGX_DISABLE_SYMLINKS_NOTOWNER 2 #endif @@ -28,9 +28,9 @@ diff -rup nginx-1.19.9/src/core/ngx_core.h nginx-1.19.9-patched/src/core/ngx_cor +extern ngx_pool_t *saved_init_cycle_pool; + #endif /* _NGX_CORE_H_INCLUDED_ */ -diff -rup nginx-1.19.9/src/core/ngx_cycle.c nginx-1.19.9-patched/src/core/ngx_cycle.c ---- nginx-1.19.9/src/core/ngx_cycle.c 2017-10-10 08:22:51.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_cycle.c 2017-12-16 23:59:51.678958419 -0800 +diff -rup nginx-1.19.3/src/core/ngx_cycle.c nginx-1.19.3-patched/src/core/ngx_cycle.c +--- nginx-1.19.3/src/core/ngx_cycle.c 2017-10-10 08:22:51.000000000 -0700 ++++ nginx-1.19.3-patched/src/core/ngx_cycle.c 2017-12-16 23:59:51.678958419 -0800 @@ -748,6 +748,10 @@ old_shm_zone_done: if (ngx_process == NGX_PROCESS_MASTER || ngx_is_init_cycle(old_cycle)) { @@ -42,10 +42,10 @@ diff -rup nginx-1.19.9/src/core/ngx_cycle.c nginx-1.19.9-patched/src/core/ngx_cy ngx_destroy_pool(old_cycle->pool); cycle->old_cycle = NULL; -diff -rup nginx-1.19.9/src/os/unix/ngx_process_cycle.c nginx-1.19.9-patched/src/os/unix/ngx_process_cycle.c ---- nginx-1.19.9/src/os/unix/ngx_process_cycle.c 2017-12-17 00:00:38.142469762 -0800 -+++ nginx-1.19.9-patched/src/os/unix/ngx_process_cycle.c 2017-12-16 23:59:51.691957791 -0800 -@@ -687,6 +692,11 @@ ngx_master_process_exit(ngx_cycle_t *cyc +diff -rup nginx-1.19.3/src/os/unix/ngx_process_cycle.c nginx-1.19.3-patched/src/os/unix/ngx_process_cycle.c +--- nginx-1.19.3/src/os/unix/ngx_process_cycle.c 2017-12-17 00:00:38.142469762 -0800 ++++ nginx-1.19.3-patched/src/os/unix/ngx_process_cycle.c 2017-12-16 23:59:51.691957791 -0800 +@@ -783,6 +783,11 @@ ngx_master_process_exit(ngx_cycle_t *cyc ngx_exit_cycle.files_n = ngx_cycle->files_n; ngx_cycle = &ngx_exit_cycle; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-larger_max_error_str.patch b/images/nginx/rootfs/patches/nginx-1.19.3-larger_max_error_str.patch similarity index 62% rename from images/nginx/rootfs/patches/nginx-1.19.9-larger_max_error_str.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-larger_max_error_str.patch index 0628d3abb..c7013e05d 100644 --- a/images/nginx/rootfs/patches/nginx-1.19.9-larger_max_error_str.patch +++ b/images/nginx/rootfs/patches/nginx-1.19.3-larger_max_error_str.patch @@ -1,5 +1,5 @@ ---- nginx-1.19.9/src/core/ngx_log.h 2013-10-08 05:07:14.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_log.h 2013-12-05 20:35:35.996236720 -0800 +--- nginx-1.19.3/src/core/ngx_log.h 2013-10-08 05:07:14.000000000 -0700 ++++ nginx-1.19.3-patched/src/core/ngx_log.h 2013-12-05 20:35:35.996236720 -0800 @@ -64,7 +64,9 @@ struct ngx_log_s { }; diff --git a/images/nginx/rootfs/patches/nginx-1.19.3-no_Werror.patch b/images/nginx/rootfs/patches/nginx-1.19.3-no_Werror.patch new file mode 100644 index 000000000..2cf7cd9c7 --- /dev/null +++ b/images/nginx/rootfs/patches/nginx-1.19.3-no_Werror.patch @@ -0,0 +1,36 @@ +diff -urp nginx-1.19.3/auto/cc/clang nginx-1.19.3-patched/auto/cc/clang +--- nginx-1.19.3/auto/cc/clang 2014-03-04 03:39:24.000000000 -0800 ++++ nginx-1.19.3-patched/auto/cc/clang 2014-03-13 20:54:26.241413360 -0700 +@@ -89,7 +89,7 @@ CFLAGS="$CFLAGS -Wconditional-uninitiali + CFLAGS="$CFLAGS -Wno-unused-parameter" + + # stop on warning +-CFLAGS="$CFLAGS -Werror" ++#CFLAGS="$CFLAGS -Werror" + + # debug + CFLAGS="$CFLAGS -g" +diff -urp nginx-1.19.3/auto/cc/gcc nginx-1.19.3-patched/auto/cc/gcc +--- nginx-1.19.3/auto/cc/gcc 2014-03-04 03:39:24.000000000 -0800 ++++ nginx-1.19.3-patched/auto/cc/gcc 2014-03-13 20:54:13.301355329 -0700 +@@ -168,7 +168,7 @@ esac + + + # stop on warning +-CFLAGS="$CFLAGS -Werror" ++#CFLAGS="$CFLAGS -Werror" + + # debug + CFLAGS="$CFLAGS -g" +diff -urp nginx-1.19.3/auto/cc/icc nginx-1.19.3-patched/auto/cc/icc +--- nginx-1.19.3/auto/cc/icc 2014-03-04 03:39:24.000000000 -0800 ++++ nginx-1.19.3-patched/auto/cc/icc 2014-03-13 20:54:13.301355329 -0700 +@@ -115,7 +115,7 @@ case "$NGX_ICC_VER" in + esac + + # stop on warning +-CFLAGS="$CFLAGS -Werror" ++#CFLAGS="$CFLAGS -Werror" + + # debug + CFLAGS="$CFLAGS -g" diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-proxy_host_port_vars.patch b/images/nginx/rootfs/patches/nginx-1.19.3-proxy_host_port_vars.patch similarity index 87% rename from images/nginx/rootfs/patches/nginx-1.19.9-proxy_host_port_vars.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-proxy_host_port_vars.patch index 25282bda3..63eaf0ca7 100644 --- a/images/nginx/rootfs/patches/nginx-1.19.9-proxy_host_port_vars.patch +++ b/images/nginx/rootfs/patches/nginx-1.19.3-proxy_host_port_vars.patch @@ -1,5 +1,5 @@ ---- nginx-1.19.9/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800 -+++ nginx-1.19.9-patched/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800 +--- nginx-1.19.3/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800 ++++ nginx-1.19.3-patched/src/http/modules/ngx_http_proxy_module.c 2017-07-16 14:02:51.000000000 +0800 @@ -793,13 +793,13 @@ static ngx_keyval_t ngx_http_proxy_cach static ngx_http_variable_t ngx_http_proxy_vars[] = { diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-resolver_conf_parsing.patch b/images/nginx/rootfs/patches/nginx-1.19.3-resolver_conf_parsing.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-resolver_conf_parsing.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-resolver_conf_parsing.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-reuseport_close_unused_fds.patch b/images/nginx/rootfs/patches/nginx-1.19.3-reuseport_close_unused_fds.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-reuseport_close_unused_fds.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-reuseport_close_unused_fds.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-single_process_graceful_exit.patch b/images/nginx/rootfs/patches/nginx-1.19.3-single_process_graceful_exit.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-single_process_graceful_exit.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-single_process_graceful_exit.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-socket_cloexec.patch b/images/nginx/rootfs/patches/nginx-1.19.3-socket_cloexec.patch similarity index 98% rename from images/nginx/rootfs/patches/nginx-1.19.9-socket_cloexec.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-socket_cloexec.patch index 8ffe4c167..985ce573b 100644 --- a/images/nginx/rootfs/patches/nginx-1.19.9-socket_cloexec.patch +++ b/images/nginx/rootfs/patches/nginx-1.19.3-socket_cloexec.patch @@ -151,7 +151,7 @@ diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c index c4376a5..48e8fa8 100644 --- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c -@@ -960,6 +1029,9 @@ ngx_worker_process_exit(ngx_cycle_t *cycle) +@@ -1032,6 +1032,9 @@ ngx_worker_process_exit(ngx_cycle_t *cycle) for (i = 0; i < cycle->connection_n; i++) { if (c[i].fd != -1 && c[i].read diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-ssl_cert_cb_yield.patch b/images/nginx/rootfs/patches/nginx-1.19.3-ssl_cert_cb_yield.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-ssl_cert_cb_yield.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-ssl_cert_cb_yield.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-ssl_sess_cb_yield.patch b/images/nginx/rootfs/patches/nginx-1.19.3-ssl_sess_cb_yield.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-ssl_sess_cb_yield.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-ssl_sess_cb_yield.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-stream_proxy_get_next_upstream_tries.patch b/images/nginx/rootfs/patches/nginx-1.19.3-stream_proxy_get_next_upstream_tries.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-stream_proxy_get_next_upstream_tries.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-stream_proxy_get_next_upstream_tries.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-stream_ssl_preread_no_skip.patch b/images/nginx/rootfs/patches/nginx-1.19.3-stream_ssl_preread_no_skip.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-stream_ssl_preread_no_skip.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-stream_ssl_preread_no_skip.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-upstream_pipelining.patch b/images/nginx/rootfs/patches/nginx-1.19.3-upstream_pipelining.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-upstream_pipelining.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-upstream_pipelining.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-upstream_timeout_fields.patch b/images/nginx/rootfs/patches/nginx-1.19.3-upstream_timeout_fields.patch similarity index 100% rename from images/nginx/rootfs/patches/nginx-1.19.9-upstream_timeout_fields.patch rename to images/nginx/rootfs/patches/nginx-1.19.3-upstream_timeout_fields.patch diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-always_enable_cc_feature_tests.patch b/images/nginx/rootfs/patches/nginx-1.19.9-always_enable_cc_feature_tests.patch deleted file mode 100644 index 62034509d..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-always_enable_cc_feature_tests.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- nginx-1.19.9/auto/cc/conf 2015-10-30 22:47:50.000000000 +0800 -+++ nginx-1.19.9-patched/auto/cc/conf 2015-11-02 12:23:05.385156987 +0800 -@@ -136,7 +136,7 @@ fi - CFLAGS="$CFLAGS $NGX_CC_OPT" - NGX_TEST_LD_OPT="$NGX_LD_OPT" - --if [ "$NGX_PLATFORM" != win32 ]; then -+if [ 1 ]; then - - if test -n "$NGX_LD_OPT"; then - ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\" diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-daemon_destroy_pool.patch b/images/nginx/rootfs/patches/nginx-1.19.9-daemon_destroy_pool.patch deleted file mode 100644 index 5690b88f0..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-daemon_destroy_pool.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c -index ab672110..f259af31 100644 ---- a/src/os/unix/ngx_daemon.c -+++ b/src/os/unix/ngx_daemon.c -@@ -23,6 +23,8 @@ ngx_daemon(ngx_log_t *log) - break; - - default: -+ /* just to make it ASAN or Valgrind clean */ -+ ngx_destroy_pool(ngx_cycle->pool); - exit(0); - } diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-intercept_error_log.patch b/images/nginx/rootfs/patches/nginx-1.19.9-intercept_error_log.patch deleted file mode 100644 index 5de769517..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-intercept_error_log.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h -index c51b7ff..4c335b9 100644 ---- a/src/core/ngx_cycle.h -+++ b/src/core/ngx_cycle.h -@@ -22,9 +22,14 @@ - #define NGX_DEBUG_POINTS_ABORT 2 - - -+#define HAVE_INTERCEPT_ERROR_LOG_PATCH -+ -+ - typedef struct ngx_shm_zone_s ngx_shm_zone_t; - - typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *data); -+typedef ngx_int_t (*ngx_log_intercept_pt) (ngx_log_t *log, ngx_uint_t level, -+ u_char *buf, size_t len); - - struct ngx_shm_zone_s { - void *data; -@@ -75,6 +80,10 @@ struct ngx_cycle_s { - ngx_str_t prefix; - ngx_str_t lock_file; - ngx_str_t hostname; -+ -+ ngx_log_intercept_pt intercept_error_log_handler; -+ void *intercept_error_log_data; -+ unsigned entered_logger; /* :1 */ - }; - - -diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c -index 8e9408d..ed9b11b 100644 ---- a/src/core/ngx_log.c -+++ b/src/core/ngx_log.c -@@ -112,6 +112,8 @@ ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, - ngx_uint_t wrote_stderr, debug_connection; - u_char errstr[NGX_MAX_ERROR_STR]; - -+ ngx_log_intercept_pt log_intercept = NULL; -+ - last = errstr + NGX_MAX_ERROR_STR; - - p = ngx_cpymem(errstr, ngx_cached_err_log_time.data, -@@ -153,6 +155,16 @@ ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err, - p = last - NGX_LINEFEED_SIZE; - } - -+ if (ngx_cycle) { -+ log_intercept = ngx_cycle->intercept_error_log_handler; -+ } -+ -+ if (log_intercept && !ngx_cycle->entered_logger) { -+ ngx_cycle->entered_logger = 1; -+ log_intercept(log, level, errstr, p - errstr); -+ ngx_cycle->entered_logger = 0; -+ } -+ - ngx_linefeed(p); - - wrote_stderr = 0; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-log_escape_non_ascii.patch b/images/nginx/rootfs/patches/nginx-1.19.9-log_escape_non_ascii.patch deleted file mode 100644 index bea6e52ee..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-log_escape_non_ascii.patch +++ /dev/null @@ -1,117 +0,0 @@ -diff --git a/src/http/modules/ngx_http_log_module.c b/src/http/modules/ngx_http_log_module.c -index 917ed55f..b769dfd3 100644 ---- a/src/http/modules/ngx_http_log_module.c -+++ b/src/http/modules/ngx_http_log_module.c -@@ -79,6 +79,8 @@ typedef struct { - time_t open_file_cache_valid; - ngx_uint_t open_file_cache_min_uses; - -+ ngx_flag_t escape_non_ascii; -+ - ngx_uint_t off; /* unsigned off:1 */ - } ngx_http_log_loc_conf_t; - -@@ -131,7 +133,8 @@ static size_t ngx_http_log_variable_getlen(ngx_http_request_t *r, - uintptr_t data); - static u_char *ngx_http_log_variable(ngx_http_request_t *r, u_char *buf, - ngx_http_log_op_t *op); --static uintptr_t ngx_http_log_escape(u_char *dst, u_char *src, size_t size); -+static uintptr_t ngx_http_log_escape(ngx_http_log_loc_conf_t *lcf, u_char *dst, -+ u_char *src, size_t size); - static size_t ngx_http_log_json_variable_getlen(ngx_http_request_t *r, - uintptr_t data); - static u_char *ngx_http_log_json_variable(ngx_http_request_t *r, u_char *buf, -@@ -177,6 +180,13 @@ static ngx_command_t ngx_http_log_commands[] = { - 0, - NULL }, - -+ { ngx_string("log_escape_non_ascii"), -+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG, -+ ngx_conf_set_flag_slot, -+ NGX_HTTP_LOC_CONF_OFFSET, -+ offsetof(ngx_http_log_loc_conf_t, escape_non_ascii), -+ NULL }, -+ - ngx_null_command - }; - -@@ -935,6 +945,7 @@ static size_t - ngx_http_log_variable_getlen(ngx_http_request_t *r, uintptr_t data) - { - uintptr_t len; -+ ngx_http_log_loc_conf_t *lcf; - ngx_http_variable_value_t *value; - - value = ngx_http_get_indexed_variable(r, data); -@@ -943,7 +954,9 @@ ngx_http_log_variable_getlen(ngx_http_request_t *r, uintptr_t data) - return 1; - } - -- len = ngx_http_log_escape(NULL, value->data, value->len); -+ lcf = ngx_http_get_module_loc_conf(r, ngx_http_log_module); -+ -+ len = ngx_http_log_escape(lcf, NULL, value->data, value->len); - - value->escape = len ? 1 : 0; - -@@ -954,6 +967,7 @@ ngx_http_log_variable_getlen(ngx_http_request_t *r, uintptr_t data) - static u_char * - ngx_http_log_variable(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) - { -+ ngx_http_log_loc_conf_t *lcf; - ngx_http_variable_value_t *value; - - value = ngx_http_get_indexed_variable(r, op->data); -@@ -967,16 +981,18 @@ ngx_http_log_variable(ngx_http_request_t *r, u_char *buf, ngx_http_log_op_t *op) - return ngx_cpymem(buf, value->data, value->len); - - } else { -- return (u_char *) ngx_http_log_escape(buf, value->data, value->len); -+ lcf = ngx_http_get_module_loc_conf(r, ngx_http_log_module); -+ return (u_char *) ngx_http_log_escape(lcf, buf, value->data, value->len); - } - } - - - static uintptr_t --ngx_http_log_escape(u_char *dst, u_char *src, size_t size) -+ngx_http_log_escape(ngx_http_log_loc_conf_t *lcf, u_char *dst, u_char *src, -+ size_t size) - { -- ngx_uint_t n; -- static u_char hex[] = "0123456789ABCDEF"; -+ ngx_uint_t n; -+ static u_char hex[] = "0123456789ABCDEF"; - - static uint32_t escape[] = { - 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ -@@ -996,6 +1012,12 @@ ngx_http_log_escape(u_char *dst, u_char *src, size_t size) - 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ - }; - -+ if (lcf->escape_non_ascii) { -+ ngx_memset(&escape[4], 0xff, sizeof(uint32_t) * 4); -+ -+ } else { -+ ngx_memzero(&escape[4], sizeof(uint32_t) * 4); -+ } - - if (dst == NULL) { - -@@ -1120,6 +1142,7 @@ ngx_http_log_create_loc_conf(ngx_conf_t *cf) - } - - conf->open_file_cache = NGX_CONF_UNSET_PTR; -+ conf->escape_non_ascii = NGX_CONF_UNSET; - - return conf; - } -@@ -1135,6 +1158,8 @@ ngx_http_log_merge_loc_conf(ngx_conf_t *cf, void *parent, void *child) - ngx_http_log_fmt_t *fmt; - ngx_http_log_main_conf_t *lmcf; - -+ ngx_conf_merge_value(conf->escape_non_ascii, prev->escape_non_ascii, 1); -+ - if (conf->open_file_cache == NGX_CONF_UNSET_PTR) { - - conf->open_file_cache = prev->open_file_cache; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-no_Werror.patch b/images/nginx/rootfs/patches/nginx-1.19.9-no_Werror.patch deleted file mode 100644 index 7bb0ac902..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-no_Werror.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -urp nginx-1.19.9/auto/cc/clang nginx-1.19.9-patched/auto/cc/clang ---- nginx-1.19.9/auto/cc/clang 2014-03-04 03:39:24.000000000 -0800 -+++ nginx-1.19.9-patched/auto/cc/clang 2014-03-13 20:54:26.241413360 -0700 -@@ -89,7 +89,7 @@ CFLAGS="$CFLAGS -Wconditional-uninitiali - CFLAGS="$CFLAGS -Wno-unused-parameter" - - # stop on warning --CFLAGS="$CFLAGS -Werror" -+#CFLAGS="$CFLAGS -Werror" - - # debug - CFLAGS="$CFLAGS -g" -diff -urp nginx-1.19.9/auto/cc/gcc nginx-1.19.9-patched/auto/cc/gcc ---- nginx-1.19.9/auto/cc/gcc 2014-03-04 03:39:24.000000000 -0800 -+++ nginx-1.19.9-patched/auto/cc/gcc 2014-03-13 20:54:13.301355329 -0700 -@@ -168,7 +168,7 @@ esac - - - # stop on warning --CFLAGS="$CFLAGS -Werror" -+#CFLAGS="$CFLAGS -Werror" - - # debug - CFLAGS="$CFLAGS -g" -diff -urp nginx-1.19.9/auto/cc/icc nginx-1.19.9-patched/auto/cc/icc ---- nginx-1.19.9/auto/cc/icc 2014-03-04 03:39:24.000000000 -0800 -+++ nginx-1.19.9-patched/auto/cc/icc 2014-03-13 20:54:13.301355329 -0700 -@@ -115,7 +115,7 @@ case "$NGX_ICC_VER" in - esac - - # stop on warning --CFLAGS="$CFLAGS -Werror" -+#CFLAGS="$CFLAGS -Werror" - - # debug - CFLAGS="$CFLAGS -g" diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-no_error_pages.patch b/images/nginx/rootfs/patches/nginx-1.19.9-no_error_pages.patch deleted file mode 100644 index f57930768..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-no_error_pages.patch +++ /dev/null @@ -1,91 +0,0 @@ -diff -upr nginx-1.19.9/src/http/ngx_http_core_module.c nginx-1.19.9-patched/src/http/ngx_http_core_module.c ---- nginx-1.19.9/src/http/ngx_http_core_module.c 2017-08-31 18:14:41.000000000 -0700 -+++ nginx-1.19.9-patched/src/http/ngx_http_core_module.c 2017-08-31 18:21:31.638098196 -0700 -@@ -61,6 +61,8 @@ static char *ngx_http_core_directio(ngx_ - void *conf); - static char *ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd, - void *conf); -+static char *ngx_http_core_no_error_pages(ngx_conf_t *cf, ngx_command_t *cmd, -+ void *conf); - static char *ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd, - void *conf); - static char *ngx_http_core_error_log(ngx_conf_t *cf, ngx_command_t *cmd, -@@ -647,6 +649,14 @@ static ngx_command_t ngx_http_core_comm - 0, - NULL }, - -+ { ngx_string("no_error_pages"), -+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF -+ |NGX_CONF_NOARGS, -+ ngx_http_core_no_error_pages, -+ NGX_HTTP_LOC_CONF_OFFSET, -+ 0, -+ NULL }, -+ - { ngx_string("post_action"), - NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF - |NGX_CONF_TAKE1, -@@ -3334,7 +3344,6 @@ ngx_http_core_create_loc_conf(ngx_conf_t - * clcf->types = NULL; - * clcf->default_type = { 0, NULL }; - * clcf->error_log = NULL; -- * clcf->error_pages = NULL; - * clcf->client_body_path = NULL; - * clcf->regex = NULL; - * clcf->exact_match = 0; -@@ -3344,6 +3353,7 @@ ngx_http_core_create_loc_conf(ngx_conf_t - * clcf->keepalive_disable = 0; - */ - -+ clcf->error_pages = NGX_CONF_UNSET_PTR; - clcf->client_max_body_size = NGX_CONF_UNSET; - clcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE; - clcf->client_body_timeout = NGX_CONF_UNSET_MSEC; -@@ -3543,9 +3553,7 @@ ngx_http_core_merge_loc_conf(ngx_conf_t - } - } - -- if (conf->error_pages == NULL && prev->error_pages) { -- conf->error_pages = prev->error_pages; -- } -+ ngx_conf_merge_ptr_value(conf->error_pages, prev->error_pages, NULL); - - ngx_conf_merge_str_value(conf->default_type, - prev->default_type, "text/plain"); -@@ -4553,6 +4561,10 @@ ngx_http_core_error_page(ngx_conf_t *cf, - ngx_http_compile_complex_value_t ccv; - - if (clcf->error_pages == NULL) { -+ return "conflicts with \"no_error_pages\""; -+ } -+ -+ if (clcf->error_pages == NGX_CONF_UNSET_PTR) { - clcf->error_pages = ngx_array_create(cf->pool, 4, - sizeof(ngx_http_err_page_t)); - if (clcf->error_pages == NULL) { -@@ -4655,6 +4667,25 @@ ngx_http_core_error_page(ngx_conf_t *cf, - - return NGX_CONF_OK; - } -+ -+ -+static char * -+ngx_http_core_no_error_pages(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) -+{ -+ ngx_http_core_loc_conf_t *clcf = conf; -+ -+ if (clcf->error_pages == NULL) { -+ return "is duplicate"; -+ } -+ -+ if (clcf->error_pages != NGX_CONF_UNSET_PTR) { -+ return "conflicts with \"error_page\""; -+ } -+ -+ clcf->error_pages = NULL; -+ -+ return NGX_CONF_OK; -+} - - - static char * diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-no_pool.patch b/images/nginx/rootfs/patches/nginx-1.19.9-no_pool.patch deleted file mode 100644 index aa3c37ae6..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-no_pool.patch +++ /dev/null @@ -1,587 +0,0 @@ -diff --minimal '--exclude=*.swp' '--exclude=*~' -up nginx-1.19.9/src/core/nginx.h nginx-1.19.9-patched/src/core/nginx.h ---- nginx-1.19.9/src/core/nginx.h 2016-04-19 09:02:38.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/nginx.h 2016-04-21 16:25:07.452944624 -0700 -@@ -10,7 +10,7 @@ - - - #define nginx_version 1019009 - #define NGINX_VERSION "1.19.9" --#define NGINX_VER "openresty/" NGINX_VERSION ".unknown" -+#define NGINX_VER "openresty/" NGINX_VERSION ".unknown (no pool)" - - #ifdef NGX_BUILD -diff --minimal '--exclude=*.swp' '--exclude=*~' -up nginx-1.19.9/src/core/ngx_array.c nginx-1.19.9-patched/src/core/ngx_array.c ---- nginx-1.19.9/src/core/ngx_array.c 2016-04-19 09:02:38.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_array.c 2016-04-21 16:25:07.453947190 -0700 -@@ -30,26 +30,30 @@ ngx_array_create(ngx_pool_t *p, ngx_uint - void - ngx_array_destroy(ngx_array_t *a) - { -- ngx_pool_t *p; -+ ngx_pool_t *p; -+ ngx_array_link_t *link; - - p = a->pool; - -- if ((u_char *) a->elts + a->size * a->nalloc == p->d.last) { -- p->d.last -= a->size * a->nalloc; -+ if (a->elts) { -+ ngx_pfree(p, a->elts); - } - -- if ((u_char *) a + sizeof(ngx_array_t) == p->d.last) { -- p->d.last = (u_char *) a; -+ for (link = a->old_elts; link; link = link->next) { -+ ngx_pfree(p, link->elts); - } -+ -+ ngx_pfree(p, a); - } - - - void * - ngx_array_push(ngx_array_t *a) - { -- void *elt, *new; -- size_t size; -- ngx_pool_t *p; -+ void *elt, *new; -+ size_t size; -+ ngx_pool_t *p; -+ ngx_array_link_t *link; - - if (a->nelts == a->nalloc) { - -@@ -59,29 +63,27 @@ ngx_array_push(ngx_array_t *a) - - p = a->pool; - -- if ((u_char *) a->elts + size == p->d.last -- && p->d.last + a->size <= p->d.end) -- { -- /* -- * the array allocation is the last in the pool -- * and there is space for new allocation -- */ -- -- p->d.last += a->size; -- a->nalloc++; -+ /* allocate a new array */ - -- } else { -- /* allocate a new array */ -+ new = ngx_palloc(p, 2 * size); -+ if (new == NULL) { -+ return NULL; -+ } - -- new = ngx_palloc(p, 2 * size); -- if (new == NULL) { -- return NULL; -- } -+ ngx_memcpy(new, a->elts, size); - -- ngx_memcpy(new, a->elts, size); -- a->elts = new; -- a->nalloc *= 2; -+ link = ngx_palloc(p, sizeof(ngx_array_link_t)); -+ if (link == NULL) { -+ ngx_pfree(p, new); -+ return NULL; - } -+ -+ link->next = a->old_elts; -+ link->elts = a->elts; -+ a->old_elts = link; -+ -+ a->elts = new; -+ a->nalloc *= 2; - } - - elt = (u_char *) a->elts + a->size * a->nelts; -@@ -95,11 +97,10 @@ void * - ngx_array_push_n(ngx_array_t *a, ngx_uint_t n) - { - void *elt, *new; -- size_t size; - ngx_uint_t nalloc; - ngx_pool_t *p; - -- size = n * a->size; -+ ngx_array_link_t *link; - - if (a->nelts + n > a->nalloc) { - -@@ -107,31 +108,27 @@ ngx_array_push_n(ngx_array_t *a, ngx_uin - - p = a->pool; - -- if ((u_char *) a->elts + a->size * a->nalloc == p->d.last -- && p->d.last + size <= p->d.end) -- { -- /* -- * the array allocation is the last in the pool -- * and there is space for new allocation -- */ -+ nalloc = 2 * ((n >= a->nalloc) ? n : a->nalloc); - -- p->d.last += size; -- a->nalloc += n; -+ new = ngx_palloc(p, nalloc * a->size); -+ if (new == NULL) { -+ return NULL; -+ } - -- } else { -- /* allocate a new array */ -+ ngx_memcpy(new, a->elts, a->nelts * a->size); - -- nalloc = 2 * ((n >= a->nalloc) ? n : a->nalloc); -+ link = ngx_palloc(p, sizeof(ngx_array_link_t)); -+ if (link == NULL) { -+ ngx_pfree(p, new); -+ return NULL; -+ } - -- new = ngx_palloc(p, nalloc * a->size); -- if (new == NULL) { -- return NULL; -- } -+ link->next = a->old_elts; -+ link->elts = a->elts; -+ a->old_elts = link; - -- ngx_memcpy(new, a->elts, a->nelts * a->size); -- a->elts = new; -- a->nalloc = nalloc; -- } -+ a->elts = new; -+ a->nalloc = nalloc; - } - - elt = (u_char *) a->elts + a->size * a->nelts; -diff --minimal '--exclude=*.swp' '--exclude=*~' -up nginx-1.19.9/src/core/ngx_array.h nginx-1.19.9-patched/src/core/ngx_array.h ---- nginx-1.19.9/src/core/ngx_array.h 2016-04-19 09:02:38.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_array.h 2016-04-21 16:25:07.453947190 -0700 -@@ -13,12 +13,23 @@ - #include - - -+typedef struct ngx_array_link_s ngx_array_link_t; -+ -+ -+struct ngx_array_link_s { -+ void *elts; -+ ngx_array_link_t *next; -+}; -+ -+ - typedef struct { - void *elts; - ngx_uint_t nelts; - size_t size; - ngx_uint_t nalloc; - ngx_pool_t *pool; -+ -+ ngx_array_link_t *old_elts; - } ngx_array_t; - - -@@ -40,6 +51,7 @@ ngx_array_init(ngx_array_t *array, ngx_p - array->size = size; - array->nalloc = n; - array->pool = pool; -+ array->old_elts = NULL; - - array->elts = ngx_palloc(pool, n * size); - if (array->elts == NULL) { -diff --minimal '--exclude=*.swp' '--exclude=*~' -up nginx-1.19.9/src/core/ngx_palloc.c nginx-1.19.9-patched/src/core/ngx_palloc.c ---- nginx-1.19.9/src/core/ngx_palloc.c 2016-04-19 09:02:38.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_palloc.c 2016-04-21 16:25:45.912282685 -0700 -@@ -9,34 +9,26 @@ - #include - - --static ngx_inline void *ngx_palloc_small(ngx_pool_t *pool, size_t size, -- ngx_uint_t align); --static void *ngx_palloc_block(ngx_pool_t *pool, size_t size); --static void *ngx_palloc_large(ngx_pool_t *pool, size_t size); -+static void * ngx_malloc(ngx_pool_t *pool, size_t size); - - - ngx_pool_t * - ngx_create_pool(size_t size, ngx_log_t *log) - { -- ngx_pool_t *p; -+ ngx_pool_t *p; - -- p = ngx_memalign(NGX_POOL_ALIGNMENT, size, log); -+ size = sizeof(ngx_pool_t); -+ p = ngx_alloc(size, log); - if (p == NULL) { - return NULL; - } - -- p->d.last = (u_char *) p + sizeof(ngx_pool_t); -- p->d.end = (u_char *) p + size; -- p->d.next = NULL; -- p->d.failed = 0; -+ ngx_memzero(p, size); - - size = size - sizeof(ngx_pool_t); - p->max = (size < NGX_MAX_ALLOC_FROM_POOL) ? size : NGX_MAX_ALLOC_FROM_POOL; - - p->current = p; -- p->chain = NULL; -- p->large = NULL; -- p->cleanup = NULL; - p->log = log; - - return p; -@@ -46,8 +38,7 @@ ngx_create_pool(size_t size, ngx_log_t * - void - ngx_destroy_pool(ngx_pool_t *pool) - { -- ngx_pool_t *p, *n; -- ngx_pool_large_t *l; -+ ngx_pool_data_t *d, *n; - ngx_pool_cleanup_t *c; - - for (c = pool->cleanup; c; c = c->next) { -@@ -58,6 +49,11 @@ ngx_destroy_pool(ngx_pool_t *pool) - } - } - -+ if (pool->d == NULL) { -+ ngx_free(pool); -+ return; -+ } -+ - #if (NGX_DEBUG) - - /* -@@ -65,13 +61,9 @@ ngx_destroy_pool(ngx_pool_t *pool) - * so we cannot use this log while free()ing the pool - */ - -- for (l = pool->large; l; l = l->next) { -- ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, "free: %p", l->alloc); -- } -- -- for (p = pool, n = pool->d.next; /* void */; p = n, n = n->d.next) { -+ for (d = pool->d, n = d->next; ; d = n, n = n->next) { - ngx_log_debug2(NGX_LOG_DEBUG_ALLOC, pool->log, 0, -- "free: %p, unused: %uz", p, p->d.end - p->d.last); -+ "free: %p, unused: %d", d, 0); - - if (n == NULL) { - break; -@@ -80,171 +72,82 @@ ngx_destroy_pool(ngx_pool_t *pool) - - #endif - -- for (l = pool->large; l; l = l->next) { -- if (l->alloc) { -- ngx_free(l->alloc); -- } -- } -- -- for (p = pool, n = pool->d.next; /* void */; p = n, n = n->d.next) { -- ngx_free(p); -+ for (d = pool->d, n = d->next; ; d = n, n = n->next) { -+ ngx_free(d->alloc); -+ ngx_free(d); - - if (n == NULL) { - break; - } - } -+ -+ pool->d = NULL; -+ ngx_free(pool); - } - - - void - ngx_reset_pool(ngx_pool_t *pool) - { -- ngx_pool_t *p; -- ngx_pool_large_t *l; -+ ngx_pool_data_t *d, *n; -+ ngx_pool_data_t *saved = NULL; - -- for (l = pool->large; l; l = l->next) { -- if (l->alloc) { -- ngx_free(l->alloc); -+ if (pool->d) { -+ for (d = pool->d, n = d->next; ; d = n, n = n->next) { -+ if (d->alloc == pool->log) { -+ saved = d; -+ continue; -+ } -+ -+ ngx_free(d->alloc); -+ ngx_free(d); -+ -+ if (n == NULL) { -+ break; -+ } - } -- } - -- for (p = pool; p; p = p->d.next) { -- p->d.last = (u_char *) p + sizeof(ngx_pool_t); -- p->d.failed = 0; -+ pool->d = saved; -+ pool->current = pool; -+ pool->chain = NULL; - } -- -- pool->current = pool; -- pool->chain = NULL; -- pool->large = NULL; - } - - - void * - ngx_palloc(ngx_pool_t *pool, size_t size) - { --#if !(NGX_DEBUG_PALLOC) -- if (size <= pool->max) { -- return ngx_palloc_small(pool, size, 1); -- } --#endif -- -- return ngx_palloc_large(pool, size); -+ return ngx_malloc(pool, size); - } - - - void * - ngx_pnalloc(ngx_pool_t *pool, size_t size) - { --#if !(NGX_DEBUG_PALLOC) -- if (size <= pool->max) { -- return ngx_palloc_small(pool, size, 0); -- } --#endif -- -- return ngx_palloc_large(pool, size); --} -- -- --static ngx_inline void * --ngx_palloc_small(ngx_pool_t *pool, size_t size, ngx_uint_t align) --{ -- u_char *m; -- ngx_pool_t *p; -- -- p = pool->current; -- -- do { -- m = p->d.last; -- -- if (align) { -- m = ngx_align_ptr(m, NGX_ALIGNMENT); -- } -- -- if ((size_t) (p->d.end - m) >= size) { -- p->d.last = m + size; -- -- return m; -- } -- -- p = p->d.next; -- -- } while (p); -- -- return ngx_palloc_block(pool, size); --} -- -- --static void * --ngx_palloc_block(ngx_pool_t *pool, size_t size) --{ -- u_char *m; -- size_t psize; -- ngx_pool_t *p, *new; -- -- psize = (size_t) (pool->d.end - (u_char *) pool); -- -- m = ngx_memalign(NGX_POOL_ALIGNMENT, psize, pool->log); -- if (m == NULL) { -- return NULL; -- } -- -- new = (ngx_pool_t *) m; -- -- new->d.end = m + psize; -- new->d.next = NULL; -- new->d.failed = 0; -- -- m += sizeof(ngx_pool_data_t); -- m = ngx_align_ptr(m, NGX_ALIGNMENT); -- new->d.last = m + size; -- -- for (p = pool->current; p->d.next; p = p->d.next) { -- if (p->d.failed++ > 4) { -- pool->current = p->d.next; -- } -- } -- -- p->d.next = new; -- -- return m; -+ return ngx_malloc(pool, size); - } - - - static void * --ngx_palloc_large(ngx_pool_t *pool, size_t size) -+ngx_malloc(ngx_pool_t *pool, size_t size) - { -- void *p; -- ngx_uint_t n; -- ngx_pool_large_t *large; -+ void *p; -+ ngx_pool_data_t *d; - - p = ngx_alloc(size, pool->log); - if (p == NULL) { - return NULL; - } - -- n = 0; -- -- for (large = pool->large; large; large = large->next) { -- if (large->alloc == NULL) { -- large->alloc = p; -- return p; -- } -- -- if (n++ > 3) { -- break; -- } -- } -- -- large = ngx_palloc_small(pool, sizeof(ngx_pool_large_t), 1); -- if (large == NULL) { -+ d = ngx_alloc(sizeof(ngx_pool_data_t), pool->log); -+ if (d == NULL){ - ngx_free(p); - return NULL; - } - -- large->alloc = p; -- large->next = pool->large; -- pool->large = large; -- -+ d->alloc = p; -+ d->next = pool->d; -+ pool->d = d; - return p; - } - -@@ -253,38 +156,48 @@ void * - ngx_pmemalign(ngx_pool_t *pool, size_t size, size_t alignment) - { - void *p; -- ngx_pool_large_t *large; -+ ngx_pool_data_t *d; - - p = ngx_memalign(alignment, size, pool->log); - if (p == NULL) { - return NULL; - } - -- large = ngx_palloc_small(pool, sizeof(ngx_pool_large_t), 1); -- if (large == NULL) { -+ d = ngx_alloc(sizeof(ngx_pool_data_t), pool->log); -+ if (d == NULL){ - ngx_free(p); - return NULL; - } - -- large->alloc = p; -- large->next = pool->large; -- pool->large = large; -- -+ d->alloc = p; -+ d->next = pool->d; -+ pool->d = d; - return p; - } - - - ngx_int_t --ngx_pfree(ngx_pool_t *pool, void *p) -+ngx_pfree(ngx_pool_t *pool, void *data) - { -- ngx_pool_large_t *l; -+ ngx_pool_data_t *p, *d; - -- for (l = pool->large; l; l = l->next) { -- if (p == l->alloc) { -- ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, -- "free: %p", l->alloc); -- ngx_free(l->alloc); -- l->alloc = NULL; -+ p = NULL; -+ for (d = pool->d; d; p = d, d = d->next) { -+ if (data == d->alloc) { -+ -+ ngx_log_debug1(NGX_LOG_DEBUG_ALLOC, pool->log, 0, "free: %p", d->alloc); -+ -+ ngx_free(d->alloc); -+ d->alloc = NULL; -+ -+ if (p) { -+ p->next = d->next; -+ -+ } else { -+ pool->d = d->next; -+ } -+ -+ ngx_free(d); - - return NGX_OK; - } -diff --minimal '--exclude=*.swp' '--exclude=*~' -up nginx-1.19.9/src/core/ngx_palloc.h nginx-1.19.9-patched/src/core/ngx_palloc.h ---- nginx-1.19.9/src/core/ngx_palloc.h 2016-04-19 09:02:38.000000000 -0700 -+++ nginx-1.19.9-patched/src/core/ngx_palloc.h 2016-04-21 16:25:07.454949755 -0700 -@@ -38,28 +38,21 @@ struct ngx_pool_cleanup_s { - }; - - --typedef struct ngx_pool_large_s ngx_pool_large_t; -- --struct ngx_pool_large_s { -- ngx_pool_large_t *next; -- void *alloc; --}; -+typedef struct ngx_pool_data_s ngx_pool_large_t; -+typedef struct ngx_pool_data_s ngx_pool_data_t; - - --typedef struct { -- u_char *last; -- u_char *end; -- ngx_pool_t *next; -- ngx_uint_t failed; --} ngx_pool_data_t; -+struct ngx_pool_data_s { -+ ngx_pool_data_t *next; -+ void *alloc; -+}; - - - struct ngx_pool_s { -- ngx_pool_data_t d; -+ ngx_pool_data_t *d; - size_t max; - ngx_pool_t *current; - ngx_chain_t *chain; -- ngx_pool_large_t *large; - ngx_pool_cleanup_t *cleanup; - ngx_log_t *log; - }; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-pcre_conf_opt.patch b/images/nginx/rootfs/patches/nginx-1.19.9-pcre_conf_opt.patch deleted file mode 100644 index eb17e0642..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-pcre_conf_opt.patch +++ /dev/null @@ -1,26 +0,0 @@ -# HG changeset patch -# User Yichun Zhang -# Date 1386694955 28800 -# Node ID 9ba6b149669f1f02eeb4cdc0ebd364a949b5c469 -# Parent 30e806b8636af5fd3f03ec17df24801f390f7511 -Configure: added new option --with-pcre-conf-opt=OPTIONS. - -diff -r 30e806b8636a -r 9ba6b149669f auto/options ---- a/auto/options Mon Dec 09 10:16:44 2013 +0400 -+++ b/auto/options Tue Dec 10 09:02:35 2013 -0800 -@@ -286,6 +286,7 @@ - --with-pcre) USE_PCRE=YES ;; - --with-pcre=*) PCRE="$value" ;; - --with-pcre-opt=*) PCRE_OPT="$value" ;; -+ --with-pcre-conf-opt=*) PCRE_CONF_OPT="$value" ;; - --with-pcre-jit) PCRE_JIT=YES ;; - - --with-openssl=*) OPENSSL="$value" ;; -@@ -441,6 +442,7 @@ - --with-pcre force PCRE library usage - --with-pcre=DIR set path to PCRE library sources - --with-pcre-opt=OPTIONS set additional build options for PCRE -+ --with-pcre-conf-opt=OPTIONS set additional configure options for PCRE - --with-pcre-jit build PCRE with JIT compilation support - - --with-md5=DIR set path to md5 library sources diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process.patch b/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process.patch deleted file mode 100644 index 164004eba..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process.patch +++ /dev/null @@ -1,203 +0,0 @@ -diff --git a/src/core/nginx.c b/src/core/nginx.c -index 60f8fe7..4bd244b 100644 ---- a/src/core/nginx.c -+++ b/src/core/nginx.c -@@ -981,6 +981,7 @@ ngx_core_module_create_conf(ngx_cycle_t *cycle) - - ccf->daemon = NGX_CONF_UNSET; - ccf->master = NGX_CONF_UNSET; -+ ccf->privileged_agent = NGX_CONF_UNSET; - ccf->timer_resolution = NGX_CONF_UNSET_MSEC; - - ccf->worker_processes = NGX_CONF_UNSET; -@@ -1009,6 +1010,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) - - ngx_conf_init_value(ccf->daemon, 1); - ngx_conf_init_value(ccf->master, 1); -+ ngx_conf_init_value(ccf->privileged_agent, 0); - ngx_conf_init_msec_value(ccf->timer_resolution, 0); - - ngx_conf_init_value(ccf->worker_processes, 1); -diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h -index c51b7ff..3261f90 100644 ---- a/src/core/ngx_cycle.h -+++ b/src/core/ngx_cycle.h -@@ -22,6 +22,9 @@ - #define NGX_DEBUG_POINTS_ABORT 2 - - -+#define HAVE_PRIVILEGED_PROCESS_PATCH 1 -+ -+ - typedef struct ngx_shm_zone_s ngx_shm_zone_t; - - typedef ngx_int_t (*ngx_shm_zone_init_pt) (ngx_shm_zone_t *zone, void *data); -@@ -81,6 +84,7 @@ struct ngx_cycle_s { - typedef struct { - ngx_flag_t daemon; - ngx_flag_t master; -+ ngx_flag_t privileged_agent; - - ngx_msec_t timer_resolution; - -diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c -index 7cee1c5..c4f70d6 100644 ---- a/src/os/unix/ngx_process_cycle.c -+++ b/src/os/unix/ngx_process_cycle.c -@@ -15,6 +15,8 @@ static void ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t n, - ngx_int_t type); - static void ngx_start_cache_manager_processes(ngx_cycle_t *cycle, - ngx_uint_t respawn); -+static void ngx_start_privileged_agent_processes(ngx_cycle_t *cycle, -+ ngx_uint_t respawn); - static void ngx_pass_open_channel(ngx_cycle_t *cycle); - static void ngx_signal_worker_processes(ngx_cycle_t *cycle, int signo); - static ngx_uint_t ngx_reap_children(ngx_cycle_t *cycle); -@@ -24,6 +26,7 @@ static void ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker); - static void ngx_worker_process_exit(ngx_cycle_t *cycle); - static void ngx_channel_handler(ngx_event_t *ev); - static void ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data); -+static void ngx_privileged_agent_process_cycle(ngx_cycle_t *cycle, void *data); - static void ngx_cache_manager_process_handler(ngx_event_t *ev); - static void ngx_cache_loader_process_handler(ngx_event_t *ev); - -@@ -51,6 +54,8 @@ sig_atomic_t ngx_noaccept; - ngx_uint_t ngx_noaccepting; - ngx_uint_t ngx_restart; - -+ngx_uint_t ngx_is_privileged_agent; -+ - - static u_char master_process[] = "master process"; - -@@ -130,6 +135,7 @@ ngx_master_process_cycle(ngx_cycle_t *cycle) - ngx_start_worker_processes(cycle, ccf->worker_processes, - NGX_PROCESS_RESPAWN); - ngx_start_cache_manager_processes(cycle, 0); -+ ngx_start_privileged_agent_processes(cycle, 0); - - ngx_new_binary = 0; - delay = 0; -@@ -215,6 +221,7 @@ ngx_master_process_cycle(ngx_cycle_t *cycle) - ngx_start_worker_processes(cycle, ccf->worker_processes, - NGX_PROCESS_RESPAWN); - ngx_start_cache_manager_processes(cycle, 0); -+ ngx_start_privileged_agent_processes(cycle, 0); - ngx_noaccepting = 0; - - continue; -@@ -234,6 +241,7 @@ ngx_master_process_cycle(ngx_cycle_t *cycle) - ngx_start_worker_processes(cycle, ccf->worker_processes, - NGX_PROCESS_JUST_RESPAWN); - ngx_start_cache_manager_processes(cycle, 1); -+ ngx_start_privileged_agent_processes(cycle, 1); - - /* allow new processes to start */ - ngx_msleep(100); -@@ -248,6 +256,7 @@ ngx_master_process_cycle(ngx_cycle_t *cycle) - ngx_start_worker_processes(cycle, ccf->worker_processes, - NGX_PROCESS_RESPAWN); - ngx_start_cache_manager_processes(cycle, 0); -+ ngx_start_privileged_agent_processes(cycle, 0); - live = 1; - } - -@@ -393,6 +431,26 @@ ngx_start_cache_manager_processes(ngx_cycle_t *cycle, ngx_uint_t respawn) - - - static void -+ngx_start_privileged_agent_processes(ngx_cycle_t *cycle, ngx_uint_t respawn) -+{ -+ ngx_core_conf_t *ccf; -+ -+ ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, -+ ngx_core_module); -+ -+ if (!ccf->privileged_agent) { -+ return; -+ } -+ -+ ngx_spawn_process(cycle, ngx_privileged_agent_process_cycle, -+ "privileged agent process", "privileged agent process", -+ respawn ? NGX_PROCESS_JUST_RESPAWN : NGX_PROCESS_RESPAWN); -+ -+ ngx_pass_open_channel(cycle); -+} -+ -+ -+static void - ngx_pass_open_channel(ngx_cycle_t *cycle) - { - ngx_int_t i; -@@ -794,7 +860,10 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_int_t worker) - } - } - -- if (geteuid() == 0) { -+ /* -+ * privileged agent process has the same permission as master process -+ */ -+ if (!ngx_is_privileged_agent && geteuid() == 0) { - if (setgid(ccf->group) == -1) { - ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, - "setgid(%d) failed", ccf->group); -@@ -1149,6 +1216,47 @@ ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data) - - - static void -+ngx_privileged_agent_process_cycle(ngx_cycle_t *cycle, void *data) -+{ -+ char *name = data; -+ -+ /* -+ * Set correct process type since closing listening Unix domain socket -+ * in a master process also removes the Unix domain socket file. -+ */ -+ ngx_process = NGX_PROCESS_HELPER; -+ ngx_is_privileged_agent = 1; -+ -+ ngx_close_listening_sockets(cycle); -+ -+ /* Set a moderate number of connections for a helper process. */ -+ cycle->connection_n = 512; -+ -+ ngx_worker_process_init(cycle, -1); -+ -+ ngx_use_accept_mutex = 0; -+ -+ ngx_setproctitle(name); -+ -+ for ( ;; ) { -+ -+ if (ngx_terminate || ngx_quit) { -+ ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting"); -+ ngx_worker_process_exit(cycle); -+ } -+ -+ if (ngx_reopen) { -+ ngx_reopen = 0; -+ ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "reopening logs"); -+ ngx_reopen_files(cycle, -1); -+ } -+ -+ ngx_process_events_and_timers(cycle); -+ } -+} -+ -+ -+static void - ngx_cache_manager_process_handler(ngx_event_t *ev) - { - time_t next, n; -diff --git a/src/os/unix/ngx_process_cycle.h b/src/os/unix/ngx_process_cycle.h -index 69495d5..5149396 100644 ---- a/src/os/unix/ngx_process_cycle.h -+++ b/src/os/unix/ngx_process_cycle.h -@@ -45,6 +45,7 @@ extern ngx_pid_t ngx_new_binary; - extern ngx_uint_t ngx_inherited; - extern ngx_uint_t ngx_daemonized; - extern ngx_uint_t ngx_exiting; -+extern ngx_uint_t ngx_is_privileged_agent; - - extern sig_atomic_t ngx_reap; - extern sig_atomic_t ngx_sigio; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process_connections.patch b/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process_connections.patch deleted file mode 100644 index c642cfa4c..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-privileged_agent_process_connections.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/src/core/nginx.c b/src/core/nginx.c -index 269ff84..48329bd 100644 ---- a/src/core/nginx.c -+++ b/src/core/nginx.c -@@ -1062,6 +1062,7 @@ ngx_core_module_create_conf(ngx_cycle_t *cycle) - ccf->daemon = NGX_CONF_UNSET; - ccf->master = NGX_CONF_UNSET; - ccf->privileged_agent = NGX_CONF_UNSET; -+ ccf->privileged_agent_connections = NGX_CONF_UNSET_UINT; - ccf->timer_resolution = NGX_CONF_UNSET_MSEC; - ccf->shutdown_timeout = NGX_CONF_UNSET_MSEC; - -@@ -1092,6 +1093,7 @@ ngx_core_module_init_conf(ngx_cycle_t *cycle, void *conf) - ngx_conf_init_value(ccf->daemon, 1); - ngx_conf_init_value(ccf->master, 1); - ngx_conf_init_value(ccf->privileged_agent, 0); -+ ngx_conf_init_uint_value(ccf->privileged_agent_connections, 512); - ngx_conf_init_msec_value(ccf->timer_resolution, 0); - ngx_conf_init_msec_value(ccf->shutdown_timeout, 0); - -diff --git a/src/core/ngx_cycle.h b/src/core/ngx_cycle.h -index 6a9583e..4469390 100644 ---- a/src/core/ngx_cycle.h -+++ b/src/core/ngx_cycle.h -@@ -93,6 +93,7 @@ typedef struct { - ngx_flag_t daemon; - ngx_flag_t master; - ngx_flag_t privileged_agent; -+ ngx_uint_t privileged_agent_connections; - - ngx_msec_t timer_resolution; - ngx_msec_t shutdown_timeout; -diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c -index df25f9d..bd259c1 100644 ---- a/src/os/unix/ngx_process_cycle.c -+++ b/src/os/unix/ngx_process_cycle.c -@@ -1179,6 +1179,7 @@ static void - ngx_privileged_agent_process_cycle(ngx_cycle_t *cycle, void *data) - { - char *name = data; -+ ngx_core_conf_t *ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); - - /* - * Set correct process type since closing listening Unix domain socket -@@ -1190,7 +1191,7 @@ ngx_privileged_agent_process_cycle(ngx_cycle_t *cycle, void *data) - ngx_close_listening_sockets(cycle); - - /* Set a moderate number of connections for a helper process. */ -- cycle->connection_n = 512; -+ cycle->connection_n = ccf->privileged_agent_connections; - - ngx_worker_process_init(cycle, -1); - diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-safe_resolver_ipv6_option.patch b/images/nginx/rootfs/patches/nginx-1.19.9-safe_resolver_ipv6_option.patch deleted file mode 100644 index 59c62c8a5..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-safe_resolver_ipv6_option.patch +++ /dev/null @@ -1,56 +0,0 @@ -# HG changeset patch -# User Thibault Charbonnier -# Date 1481847421 28800 -# Thu Dec 15 16:17:01 2016 -0800 -# Node ID 8bf038fe006fd8ae253d6b41fc6cf109a8912d3e -# Parent a3dc657f4e9530623683e6b85bd7492662e4dc47 -Resolver: ignore ipv6=off resolver option when no ipv6 support - -Makes the resolver directive more robust: we only error out when ipv6 -resolution is desired but not supported (ipv6=on). - -use case 1: some configurations are sometimes re-used between builds with and -without ipv6 support. This patch avoids the need to remove the "ipv6=off" flag. - -use case 2: currently, some tools rely on the --with-ipv6 configure option from -"nginx -V" to determine if ipv6 resolution should be disabled in some cases. -With this option disappearing in Nginx 1.11.5, this patch would allow such tools -to assume "ipv6=off" to be safe regardless of ipv6 support in the current -build. - -diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c -index dade1846..5a3f0aa4 100644 ---- a/src/core/ngx_resolver.c -+++ b/src/core/ngx_resolver.c -@@ -426,14 +426,22 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n) - continue; - } - --#if (NGX_HAVE_INET6) - if (ngx_strncmp(names[i].data, "ipv6=", 5) == 0) { - - if (ngx_strcmp(&names[i].data[5], "on") == 0) { -+#if (NGX_HAVE_INET6) - r->ipv6 = 1; -+#else -+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, -+ "no ipv6 support but \"%V\" in resolver", -+ &names[i]); -+ return NULL; -+#endif - - } else if (ngx_strcmp(&names[i].data[5], "off") == 0) { -+#if (NGX_HAVE_INET6) - r->ipv6 = 0; -+#endif - - } else { - ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, -@@ -443,7 +451,6 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n) - - continue; - } --#endif - - #if !(NGX_WIN32) - if (ngx_strncmp(names[i].data, "local=", 6) == 0) { diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-server_header.patch b/images/nginx/rootfs/patches/nginx-1.19.9-server_header.patch deleted file mode 100644 index 07691d39f..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-server_header.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/src/core/nginx.h b/src/core/nginx.h -index a3c0ef8..1263881 100644 ---- a/src/core/nginx.h -+++ b/src/core/nginx.h -@@ -11,7 +11,7 @@ - - #define nginx_version 1019009 - #define NGINX_VERSION "1.19.9" --#define NGINX_VER "nginx/" NGINX_VERSION -+#define NGINX_VER "openresty/" NGINX_VERSION ".unknown" - - #ifdef NGX_BUILD - #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")" -diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c -index 9b89405..ca13f2a 100644 ---- a/src/http/ngx_http_header_filter_module.c -+++ b/src/http/ngx_http_header_filter_module.c -@@ -46,7 +46,7 @@ ngx_module_t ngx_http_header_filter_module = { - }; - - --static u_char ngx_http_server_string[] = "Server: nginx" CRLF; -+static u_char ngx_http_server_string[] = "Server: openresty" CRLF; - static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; - static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF; - -diff --git a/src/http/v2/ngx_http_v2_filter_module.c b/src/http/v2/ngx_http_v2_filter_module.c -index 8621e7a..a76c677 100644 ---- a/src/http/v2/ngx_http_v2_filter_module.c -+++ b/src/http/v2/ngx_http_v2_filter_module.c -@@ -143,7 +143,7 @@ ngx_http_v2_header_filter(ngx_http_request_t *r) - ngx_http_core_srv_conf_t *cscf; - u_char addr[NGX_SOCKADDR_STRLEN]; - -- static const u_char nginx[5] = "\x84\xaa\x63\x55\xe7"; -+ static const u_char nginx[8] = "\x87\x3d\x65\xaa\xc2\xa1\x3e\xbf"; - #if (NGX_HTTP_GZIP) - static const u_char accept_encoding[12] = - "\x8b\x84\x84\x2d\x69\x5b\x05\x44\x3c\x86\xaa\x6f"; diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-setting_args_invalidates_uri.patch b/images/nginx/rootfs/patches/nginx-1.19.9-setting_args_invalidates_uri.patch deleted file mode 100644 index c2fcd4cf2..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-setting_args_invalidates_uri.patch +++ /dev/null @@ -1,44 +0,0 @@ -# HG changeset patch -# User Yichun Zhang -# Date 1390506359 28800 -# Node ID 17186b98c235c07e94c64e5853689f790f173756 -# Parent 4b50d1f299d8a69f3e3f7975132e1490352642fe -Variable: setting $args should invalidate unparsed uri. - -diff -r 4b50d1f299d8 -r 17186b98c235 src/http/ngx_http_variables.c ---- a/src/http/ngx_http_variables.c Fri Jan 10 11:22:14 2014 -0800 -+++ b/src/http/ngx_http_variables.c Thu Jan 23 11:45:59 2014 -0800 -@@ -15,6 +15,8 @@ - ngx_http_variable_value_t *v, uintptr_t data); - static void ngx_http_variable_request_set(ngx_http_request_t *r, - ngx_http_variable_value_t *v, uintptr_t data); -+static void ngx_http_variable_request_args_set(ngx_http_request_t *r, -+ ngx_http_variable_value_t *v, uintptr_t data); - static ngx_int_t ngx_http_variable_request_get_size(ngx_http_request_t *r, - ngx_http_variable_value_t *v, uintptr_t data); - static void ngx_http_variable_request_set_size(ngx_http_request_t *r, -@@ -218,7 +220,7 @@ - NGX_HTTP_VAR_NOCACHEABLE, 0 }, - - { ngx_string("args"), -- ngx_http_variable_request_set, -+ ngx_http_variable_request_args_set, - ngx_http_variable_request, - offsetof(ngx_http_request_t, args), - NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 }, -@@ -647,6 +649,15 @@ - - - static void -+ngx_http_variable_request_args_set(ngx_http_request_t *r, -+ ngx_http_variable_value_t *v, uintptr_t data) -+{ -+ r->valid_unparsed_uri = 0; -+ ngx_http_variable_request_set(r, v, data); -+} -+ -+ -+static void - ngx_http_variable_request_set(ngx_http_request_t *r, - ngx_http_variable_value_t *v, uintptr_t data) - { diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-static_mod_escape_loc_hdr.patch b/images/nginx/rootfs/patches/nginx-1.19.9-static_mod_escape_loc_hdr.patch deleted file mode 100644 index 04d9ef10b..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-static_mod_escape_loc_hdr.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/src/http/modules/ngx_http_static_module.c b/src/http/modules/ngx_http_static_module.c -index 282d6ee..899e11e 100644 ---- a/src/http/modules/ngx_http_static_module.c -+++ b/src/http/modules/ngx_http_static_module.c -@@ -58,6 +58,8 @@ ngx_http_static_handler(ngx_http_request_t *r) - ngx_chain_t out; - ngx_open_file_info_t of; - ngx_http_core_loc_conf_t *clcf; -+ u_char *uri; -+ uintptr_t escape; - - if (!(r->method & (NGX_HTTP_GET|NGX_HTTP_HEAD|NGX_HTTP_POST))) { - return NGX_HTTP_NOT_ALLOWED; -@@ -162,9 +164,21 @@ ngx_http_static_handler(ngx_http_request_t *r) - - *last = '/'; - -+ escape = 2 * ngx_escape_uri(NULL, location, len, NGX_ESCAPE_URI); -+ if (escape > 0) { -+ uri = ngx_pnalloc(r->pool, len + escape); -+ if (uri == NULL) { -+ return NGX_ERROR; -+ } -+ ngx_escape_uri(uri, location, len, NGX_ESCAPE_URI); -+ location = uri; -+ len += escape; -+ } -+ - } else { -+ escape = 2 * ngx_escape_uri(NULL, r->uri.data, r->uri.len, NGX_ESCAPE_URI); - if (r->args.len) { -- len += r->args.len + 1; -+ len += r->args.len + 1 + escape; - } - - location = ngx_pnalloc(r->pool, len); -@@ -173,7 +187,12 @@ ngx_http_static_handler(ngx_http_request_t *r) - return NGX_HTTP_INTERNAL_SERVER_ERROR; - } - -- last = ngx_copy(location, r->uri.data, r->uri.len); -+ if (escape > 0) { -+ last = (u_char *) ngx_escape_uri(location, r->uri.data, r->uri.len, NGX_ESCAPE_URI); -+ -+ } else { -+ last = ngx_copy(location, r->uri.data, r->uri.len); -+ } - - *last = '/'; - diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-stream_balancer_export.patch b/images/nginx/rootfs/patches/nginx-1.19.9-stream_balancer_export.patch deleted file mode 100644 index f56bc5257..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-stream_balancer_export.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff --git a/src/stream/ngx_stream_upstream_round_robin.c b/src/stream/ngx_stream_upstream_round_robin.c -index 526de3a..b531ce1 100644 ---- a/src/stream/ngx_stream_upstream_round_robin.c -+++ b/src/stream/ngx_stream_upstream_round_robin.c -@@ -21,10 +21,6 @@ static void ngx_stream_upstream_notify_round_robin_peer( - - #if (NGX_STREAM_SSL) - --static ngx_int_t ngx_stream_upstream_set_round_robin_peer_session( -- ngx_peer_connection_t *pc, void *data); --static void ngx_stream_upstream_save_round_robin_peer_session( -- ngx_peer_connection_t *pc, void *data); - static ngx_int_t ngx_stream_upstream_empty_set_session( - ngx_peer_connection_t *pc, void *data); - static void ngx_stream_upstream_empty_save_session(ngx_peer_connection_t *pc, -@@ -690,7 +686,7 @@ ngx_stream_upstream_notify_round_robin_peer(ngx_peer_connection_t *pc, - - #if (NGX_STREAM_SSL) - --static ngx_int_t -+ngx_int_t - ngx_stream_upstream_set_round_robin_peer_session(ngx_peer_connection_t *pc, - void *data) - { -@@ -756,7 +752,7 @@ ngx_stream_upstream_set_round_robin_peer_session(ngx_peer_connection_t *pc, - } - - --static void -+void - ngx_stream_upstream_save_round_robin_peer_session(ngx_peer_connection_t *pc, - void *data) - { -diff --git a/src/stream/ngx_stream_upstream_round_robin.h b/src/stream/ngx_stream_upstream_round_robin.h -index 35d9fce..75f3e31 100644 ---- a/src/stream/ngx_stream_upstream_round_robin.h -+++ b/src/stream/ngx_stream_upstream_round_robin.h -@@ -142,5 +142,15 @@ ngx_int_t ngx_stream_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, - void ngx_stream_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, - void *data, ngx_uint_t state); - -+#if (NGX_STREAM_SSL) -+ngx_int_t ngx_stream_upstream_set_round_robin_peer_session( -+ ngx_peer_connection_t *pc, void *data); -+void ngx_stream_upstream_save_round_robin_peer_session( -+ ngx_peer_connection_t *pc, void *data); -+#endif -+ -+ -+#define HAVE_NGX_STREAM_BALANCER_EXPORT_PATCH 1 -+ - - #endif /* _NGX_STREAM_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */ diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-stream_proxy_timeout_fields.patch b/images/nginx/rootfs/patches/nginx-1.19.9-stream_proxy_timeout_fields.patch deleted file mode 100644 index 3b4b5e731..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-stream_proxy_timeout_fields.patch +++ /dev/null @@ -1,182 +0,0 @@ -diff --git a/src/stream/ngx_stream.h b/src/stream/ngx_stream.h -index 57e73e04..9a95ef99 100644 ---- a/src/stream/ngx_stream.h -+++ b/src/stream/ngx_stream.h -@@ -242,6 +242,15 @@ typedef struct { - } ngx_stream_module_t; - - -+typedef struct { -+ ngx_msec_t connect_timeout; -+ ngx_msec_t timeout; -+} ngx_stream_proxy_ctx_t; -+ -+ -+#define NGX_STREAM_HAVE_PROXY_TIMEOUT_FIELDS_PATCH 1 -+ -+ - #define NGX_STREAM_MODULE 0x4d525453 /* "STRM" */ - - #define NGX_STREAM_MAIN_CONF 0x02000000 -@@ -295,6 +304,7 @@ void ngx_stream_finalize_session(ngx_stream_session_t *s, ngx_uint_t rc); - extern ngx_module_t ngx_stream_module; - extern ngx_uint_t ngx_stream_max_module; - extern ngx_module_t ngx_stream_core_module; -+extern ngx_module_t ngx_stream_proxy_module; - - - typedef ngx_int_t (*ngx_stream_filter_pt)(ngx_stream_session_t *s, -diff --git a/src/stream/ngx_stream_proxy_module.c b/src/stream/ngx_stream_proxy_module.c -index 7484a728..7b50b427 100644 ---- a/src/stream/ngx_stream_proxy_module.c -+++ b/src/stream/ngx_stream_proxy_module.c -@@ -378,6 +378,7 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s) - ngx_stream_proxy_srv_conf_t *pscf; - ngx_stream_upstream_srv_conf_t *uscf, **uscfp; - ngx_stream_upstream_main_conf_t *umcf; -+ ngx_stream_proxy_ctx_t *pctx; - - c = s->connection; - -@@ -386,6 +387,17 @@ ngx_stream_proxy_handler(ngx_stream_session_t *s) - ngx_log_debug0(NGX_LOG_DEBUG_STREAM, c->log, 0, - "proxy connection handler"); - -+ pctx = ngx_palloc(c->pool, sizeof(ngx_stream_proxy_ctx_t)); -+ if (pctx == NULL) { -+ ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR); -+ return; -+ } -+ -+ pctx->connect_timeout = pscf->connect_timeout; -+ pctx->timeout = pscf->timeout; -+ -+ ngx_stream_set_ctx(s, pctx, ngx_stream_proxy_module); -+ - u = ngx_pcalloc(c->pool, sizeof(ngx_stream_upstream_t)); - if (u == NULL) { - ngx_stream_proxy_finalize(s, NGX_STREAM_INTERNAL_SERVER_ERROR); -@@ -677,6 +689,7 @@ ngx_stream_proxy_connect(ngx_stream_session_t *s) - ngx_connection_t *c, *pc; - ngx_stream_upstream_t *u; - ngx_stream_proxy_srv_conf_t *pscf; -+ ngx_stream_proxy_ctx_t *ctx; - - c = s->connection; - -@@ -684,6 +697,8 @@ ngx_stream_proxy_connect(ngx_stream_session_t *s) - - pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module); - -+ ctx = ngx_stream_get_module_ctx(s, ngx_stream_proxy_module); -+ - u = s->upstream; - - u->connected = 0; -@@ -747,7 +762,7 @@ ngx_stream_proxy_connect(ngx_stream_session_t *s) - pc->read->handler = ngx_stream_proxy_connect_handler; - pc->write->handler = ngx_stream_proxy_connect_handler; - -- ngx_add_timer(pc->write, pscf->connect_timeout); -+ ngx_add_timer(pc->write, ctx->connect_timeout); - } - - -@@ -920,8 +935,10 @@ ngx_stream_proxy_send_proxy_protocol(ngx_stream_session_t *s) - ssize_t n, size; - ngx_connection_t *c, *pc; - ngx_stream_upstream_t *u; -- ngx_stream_proxy_srv_conf_t *pscf; - u_char buf[NGX_PROXY_PROTOCOL_MAX_HEADER]; -+ ngx_stream_proxy_ctx_t *ctx; -+ -+ ctx = ngx_stream_get_module_ctx(s, ngx_stream_proxy_module); - - c = s->connection; - -@@ -948,9 +965,7 @@ ngx_stream_proxy_send_proxy_protocol(ngx_stream_session_t *s) - return NGX_ERROR; - } - -- pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module); -- -- ngx_add_timer(pc->write, pscf->timeout); -+ ngx_add_timer(pc->write, ctx->timeout); - - pc->write->handler = ngx_stream_proxy_connect_handler; - -@@ -1014,6 +1029,9 @@ ngx_stream_proxy_ssl_init_connection(ngx_stream_session_t *s) - ngx_connection_t *pc; - ngx_stream_upstream_t *u; - ngx_stream_proxy_srv_conf_t *pscf; -+ ngx_stream_proxy_ctx_t *ctx; -+ -+ ctx = ngx_stream_get_module_ctx(s, ngx_stream_proxy_module); - - u = s->upstream; - -@@ -1051,7 +1069,7 @@ ngx_stream_proxy_ssl_init_connection(ngx_stream_session_t *s) - if (rc == NGX_AGAIN) { - - if (!pc->write->timer_set) { -- ngx_add_timer(pc->write, pscf->connect_timeout); -+ ngx_add_timer(pc->write, ctx->connect_timeout); - } - - pc->ssl->handler = ngx_stream_proxy_ssl_handshake; -@@ -1316,6 +1334,7 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream) - ngx_stream_session_t *s; - ngx_stream_upstream_t *u; - ngx_stream_proxy_srv_conf_t *pscf; -+ ngx_stream_proxy_ctx_t *ctx; - - c = ev->data; - s = c->data; -@@ -1327,6 +1346,8 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream) - return; - } - -+ ctx = ngx_stream_get_module_ctx(s, ngx_stream_proxy_module); -+ - c = s->connection; - pc = u->peer.connection; - -@@ -1346,7 +1367,7 @@ ngx_stream_proxy_process_connection(ngx_event_t *ev, ngx_uint_t from_upstream) - } - - if (u->connected && !c->read->delayed && !pc->read->delayed) { -- ngx_add_timer(c->write, pscf->timeout); -+ ngx_add_timer(c->write, ctx->timeout); - } - - return; -@@ -1507,7 +1528,9 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, - ngx_connection_t *c, *pc, *src, *dst; - ngx_log_handler_pt handler; - ngx_stream_upstream_t *u; -- ngx_stream_proxy_srv_conf_t *pscf; -+ ngx_stream_proxy_ctx_t *ctx; -+ -+ ctx = ngx_stream_get_module_ctx(s, ngx_stream_proxy_module); - - u = s->upstream; - -@@ -1529,8 +1552,6 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, - return; - } - -- pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module); -- - if (from_upstream) { - src = pc; - dst = c; -@@ -1682,7 +1703,7 @@ ngx_stream_proxy_process(ngx_stream_session_t *s, ngx_uint_t from_upstream, - } - - if (!c->read->delayed && !pc->read->delayed) { -- ngx_add_timer(c->write, pscf->timeout); -+ ngx_add_timer(c->write, ctx->timeout); - - } else if (c->write->timer_set) { - ngx_del_timer(c->write); - diff --git a/images/nginx/rootfs/patches/nginx-1.19.9-win32_max_err_str.patch b/images/nginx/rootfs/patches/nginx-1.19.9-win32_max_err_str.patch deleted file mode 100644 index 8c3ba2791..000000000 --- a/images/nginx/rootfs/patches/nginx-1.19.9-win32_max_err_str.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/os/win32/ngx_event_log.c b/src/os/win32/ngx_event_log.c -index e11ed1e8..dce8eddd 100644 ---- a/src/os/win32/ngx_event_log.c -+++ b/src/os/win32/ngx_event_log.c -@@ -8,7 +8,9 @@ - #include - - --#define NGX_MAX_ERROR_STR 2048 -+#ifndef NGX_MAX_ERROR_STR -+#define NGX_MAX_ERROR_STR 4096 -+#endif - - - void ngx_cdecl diff --git a/images/nginx/rootfs/patches/patch.2021.resolver.txt b/images/nginx/rootfs/patches/patch.2021.resolver.txt deleted file mode 100644 index 6c895e61c..000000000 --- a/images/nginx/rootfs/patches/patch.2021.resolver.txt +++ /dev/null @@ -1,23 +0,0 @@ -diff --git src/core/ngx_resolver.c src/core/ngx_resolver.c ---- src/core/ngx_resolver.c -+++ src/core/ngx_resolver.c -@@ -4008,15 +4008,15 @@ done: - n = *src++; - - } else { -+ if (dst != name->data) { -+ *dst++ = '.'; -+ } -+ - ngx_strlow(dst, src, n); - dst += n; - src += n; - - n = *src++; -- -- if (n != 0) { -- *dst++ = '.'; -- } - } - - if (n == 0) {