Update nginx to 1.19.4
This commit is contained in:
parent
94bcf63579
commit
2c1279cd8b
21 changed files with 405 additions and 93 deletions
|
|
@ -1,36 +0,0 @@
|
|||
diff -urp nginx-1.17.8/auto/cc/clang nginx-1.17.8-patched/auto/cc/clang
|
||||
--- nginx-1.17.8/auto/cc/clang 2014-03-04 03:39:24.000000000 -0800
|
||||
+++ nginx-1.17.8-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.17.8/auto/cc/gcc nginx-1.17.8-patched/auto/cc/gcc
|
||||
--- nginx-1.17.8/auto/cc/gcc 2014-03-04 03:39:24.000000000 -0800
|
||||
+++ nginx-1.17.8-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.17.8/auto/cc/icc nginx-1.17.8-patched/auto/cc/icc
|
||||
--- nginx-1.17.8/auto/cc/icc 2014-03-04 03:39:24.000000000 -0800
|
||||
+++ nginx-1.17.8-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"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
diff -rup nginx-1.17.8/src/core/nginx.c nginx-1.17.8-patched/src/core/nginx.c
|
||||
--- nginx-1.17.8/src/core/nginx.c 2017-12-17 00:00:38.136470108 -0800
|
||||
+++ nginx-1.17.8-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.17.8/src/core/nginx.c nginx-1.17.8-patched/src/core/nginx.c
|
|||
if (ngx_save_argv(&init_cycle, argc, argv) != NGX_OK) {
|
||||
return 1;
|
||||
}
|
||||
diff -rup nginx-1.17.8/src/core/ngx_core.h nginx-1.17.8-patched/src/core/ngx_core.h
|
||||
--- nginx-1.17.8/src/core/ngx_core.h 2017-10-10 08:22:51.000000000 -0700
|
||||
+++ nginx-1.17.8-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.17.8/src/core/ngx_core.h nginx-1.17.8-patched/src/core/ngx_cor
|
|||
+extern ngx_pool_t *saved_init_cycle_pool;
|
||||
+
|
||||
#endif /* _NGX_CORE_H_INCLUDED_ */
|
||||
diff -rup nginx-1.17.8/src/core/ngx_cycle.c nginx-1.17.8-patched/src/core/ngx_cycle.c
|
||||
--- nginx-1.17.8/src/core/ngx_cycle.c 2017-10-10 08:22:51.000000000 -0700
|
||||
+++ nginx-1.17.8-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,9 +42,9 @@ diff -rup nginx-1.17.8/src/core/ngx_cycle.c nginx-1.17.8-patched/src/core/ngx_cy
|
|||
ngx_destroy_pool(old_cycle->pool);
|
||||
cycle->old_cycle = NULL;
|
||||
|
||||
diff -rup nginx-1.17.8/src/os/unix/ngx_process_cycle.c nginx-1.17.8-patched/src/os/unix/ngx_process_cycle.c
|
||||
--- nginx-1.17.8/src/os/unix/ngx_process_cycle.c 2017-12-17 00:00:38.142469762 -0800
|
||||
+++ nginx-1.17.8-patched/src/os/unix/ngx_process_cycle.c 2017-12-16 23:59:51.691957791 -0800
|
||||
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;
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
--- nginx-1.17.8/src/core/ngx_log.h 2013-10-08 05:07:14.000000000 -0700
|
||||
+++ nginx-1.17.8-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 {
|
||||
};
|
||||
|
||||
36
images/nginx/rootfs/patches/nginx-1.19.3-no_Werror.patch
Normal file
36
images/nginx/rootfs/patches/nginx-1.19.3-no_Werror.patch
Normal file
|
|
@ -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"
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
--- 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[] = {
|
||||
|
||||
{ ngx_string("proxy_host"), NULL, ngx_http_proxy_host_variable, 0,
|
||||
- NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
|
||||
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
|
||||
|
||||
{ ngx_string("proxy_port"), NULL, ngx_http_proxy_port_variable, 0,
|
||||
- NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
|
||||
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
|
||||
|
||||
{ ngx_string("proxy_add_x_forwarded_for"), NULL,
|
||||
- ngx_http_proxy_add_x_forwarded_for_variable, 0, NGX_HTTP_VAR_NOHASH, 0 },
|
||||
+ ngx_http_proxy_add_x_forwarded_for_variable, 0, 0, 0 },
|
||||
|
||||
#if 0
|
||||
{ ngx_string("proxy_add_via"), NULL, NULL, 0, NGX_HTTP_VAR_NOHASH, 0 },
|
||||
|
|
@ -0,0 +1,263 @@
|
|||
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
|
||||
index cd55520c..dade1846 100644
|
||||
--- a/src/core/ngx_resolver.c
|
||||
+++ b/src/core/ngx_resolver.c
|
||||
@@ -9,12 +9,26 @@
|
||||
#include <ngx_core.h>
|
||||
#include <ngx_event.h>
|
||||
|
||||
+#if !(NGX_WIN32)
|
||||
+#include <resolv.h>
|
||||
+#endif
|
||||
+
|
||||
|
||||
#define NGX_RESOLVER_UDP_SIZE 4096
|
||||
|
||||
#define NGX_RESOLVER_TCP_RSIZE (2 + 65535)
|
||||
#define NGX_RESOLVER_TCP_WSIZE 8192
|
||||
|
||||
+#if !(NGX_WIN32)
|
||||
+/*
|
||||
+ * note that 2KB should be more than enough for majority of the
|
||||
+ * resolv.conf files out there. it also acts as a safety guard to prevent
|
||||
+ * abuse.
|
||||
+ */
|
||||
+#define NGX_RESOLVER_FILE_BUF_SIZE 2048
|
||||
+#define NGX_RESOLVER_FILE_NAME "/etc/resolv.conf"
|
||||
+#endif
|
||||
+
|
||||
|
||||
typedef struct {
|
||||
u_char ident_hi;
|
||||
@@ -131,6 +145,191 @@ static ngx_resolver_node_t *ngx_resolver_lookup_addr6(ngx_resolver_t *r,
|
||||
#endif
|
||||
|
||||
|
||||
+#if !(NGX_WIN32)
|
||||
+static ngx_int_t
|
||||
+ngx_resolver_read_resolv_conf(ngx_conf_t *cf, ngx_resolver_t *r, u_char *path,
|
||||
+ size_t path_len)
|
||||
+{
|
||||
+ ngx_url_t u;
|
||||
+ ngx_resolver_connection_t *rec;
|
||||
+ ngx_fd_t fd;
|
||||
+ ngx_file_t file;
|
||||
+ u_char buf[NGX_RESOLVER_FILE_BUF_SIZE];
|
||||
+ u_char ipv6_buf[NGX_INET6_ADDRSTRLEN];
|
||||
+ ngx_uint_t address = 0, j, total = 0;
|
||||
+ ssize_t n, i;
|
||||
+ enum {
|
||||
+ sw_nameserver,
|
||||
+ sw_spaces,
|
||||
+ sw_address,
|
||||
+ sw_skip
|
||||
+ } state;
|
||||
+
|
||||
+ file.name.data = path;
|
||||
+ file.name.len = path_len;
|
||||
+
|
||||
+ if (ngx_conf_full_name(cf->cycle, &file.name, 1) != NGX_OK) {
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ fd = ngx_open_file(file.name.data, NGX_FILE_RDONLY,
|
||||
+ NGX_FILE_OPEN, 0);
|
||||
+
|
||||
+ if (fd == NGX_INVALID_FILE) {
|
||||
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, ngx_errno,
|
||||
+ ngx_open_file_n " \"%s\" failed", file.name.data);
|
||||
+
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ ngx_memzero(&file, sizeof(ngx_file_t));
|
||||
+
|
||||
+ file.fd = fd;
|
||||
+ file.log = cf->log;
|
||||
+
|
||||
+ state = sw_nameserver;
|
||||
+
|
||||
+ n = ngx_read_file(&file, buf, NGX_RESOLVER_FILE_BUF_SIZE, 0);
|
||||
+
|
||||
+ if (n == NGX_ERROR) {
|
||||
+ ngx_conf_log_error(NGX_LOG_ALERT, cf, ngx_errno,
|
||||
+ ngx_read_file_n " \"%s\" failed", file.name.data);
|
||||
+ }
|
||||
+
|
||||
+ if (ngx_close_file(file.fd) == NGX_FILE_ERROR) {
|
||||
+ ngx_conf_log_error(NGX_LOG_ALERT, cf, ngx_errno,
|
||||
+ ngx_close_file_n " \"%s\" failed", file.name.data);
|
||||
+ }
|
||||
+
|
||||
+ if (n == NGX_ERROR) {
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ if (n == 0) {
|
||||
+ return NGX_OK;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < n && total < MAXNS; /* void */) {
|
||||
+ if (buf[i] == '#' || buf[i] == ';') {
|
||||
+ state = sw_skip;
|
||||
+ }
|
||||
+
|
||||
+ switch (state) {
|
||||
+
|
||||
+ case sw_nameserver:
|
||||
+
|
||||
+ if ((size_t) n - i >= sizeof("nameserver") - 1
|
||||
+ && ngx_memcmp(buf + i, "nameserver",
|
||||
+ sizeof("nameserver") - 1) == 0)
|
||||
+ {
|
||||
+ state = sw_spaces;
|
||||
+ i += sizeof("nameserver") - 1;
|
||||
+
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ break;
|
||||
+
|
||||
+ case sw_spaces:
|
||||
+ if (buf[i] != '\t' && buf[i] != ' ') {
|
||||
+ address = i;
|
||||
+ state = sw_address;
|
||||
+ }
|
||||
+
|
||||
+ break;
|
||||
+
|
||||
+ case sw_address:
|
||||
+
|
||||
+ if (buf[i] == CR || buf[i] == LF || i == n - 1) {
|
||||
+ ngx_memzero(&u, sizeof(ngx_url_t));
|
||||
+
|
||||
+ u.url.data = buf + address;
|
||||
+
|
||||
+ if (i == n - 1 && buf[i] != CR && buf[i] != LF) {
|
||||
+ u.url.len = n - address;
|
||||
+
|
||||
+ } else {
|
||||
+ u.url.len = i - address;
|
||||
+ }
|
||||
+
|
||||
+ u.default_port = 53;
|
||||
+
|
||||
+ /* IPv6? */
|
||||
+ if (ngx_strlchr(u.url.data, u.url.data + u.url.len,
|
||||
+ ':') != NULL)
|
||||
+ {
|
||||
+ if (u.url.len + 2 > sizeof(ipv6_buf)) {
|
||||
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||
+ "IPv6 resolver address is too long:"
|
||||
+ " \"%V\"", &u.url);
|
||||
+
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ ipv6_buf[0] = '[';
|
||||
+ ngx_memcpy(ipv6_buf + 1, u.url.data, u.url.len);
|
||||
+ ipv6_buf[u.url.len + 1] = ']';
|
||||
+
|
||||
+ u.url.data = ipv6_buf;
|
||||
+ u.url.len = u.url.len + 2;
|
||||
+ }
|
||||
+
|
||||
+ if (ngx_parse_url(cf->pool, &u) != NGX_OK) {
|
||||
+ if (u.err) {
|
||||
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||
+ "%s in resolver \"%V\"",
|
||||
+ u.err, &u.url);
|
||||
+ }
|
||||
+
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ rec = ngx_array_push_n(&r->connections, u.naddrs);
|
||||
+ if (rec == NULL) {
|
||||
+ return NGX_ERROR;
|
||||
+ }
|
||||
+
|
||||
+ ngx_memzero(rec, u.naddrs * sizeof(ngx_resolver_connection_t));
|
||||
+
|
||||
+ for (j = 0; j < u.naddrs; j++) {
|
||||
+ rec[j].sockaddr = u.addrs[j].sockaddr;
|
||||
+ rec[j].socklen = u.addrs[j].socklen;
|
||||
+ rec[j].server = u.addrs[j].name;
|
||||
+ rec[j].resolver = r;
|
||||
+ }
|
||||
+
|
||||
+ total++;
|
||||
+
|
||||
+#if (NGX_DEBUG)
|
||||
+ /*
|
||||
+ * logs with level below NGX_LOG_NOTICE will not be printed
|
||||
+ * in this early phase
|
||||
+ */
|
||||
+ ngx_conf_log_error(NGX_LOG_NOTICE, cf, 0,
|
||||
+ "parsed a resolver: \"%V\"", &u.url);
|
||||
+#endif
|
||||
+
|
||||
+ state = sw_nameserver;
|
||||
+ }
|
||||
+
|
||||
+ break;
|
||||
+
|
||||
+ case sw_skip:
|
||||
+ if (buf[i] == CR || buf[i] == LF) {
|
||||
+ state = sw_nameserver;
|
||||
+ }
|
||||
+
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ i++;
|
||||
+ }
|
||||
+
|
||||
+ return NGX_OK;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
ngx_resolver_t *
|
||||
ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
|
||||
{
|
||||
@@ -246,6 +445,39 @@ ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if !(NGX_WIN32)
|
||||
+ if (ngx_strncmp(names[i].data, "local=", 6) == 0) {
|
||||
+
|
||||
+ if (ngx_strcmp(&names[i].data[6], "on") == 0) {
|
||||
+ if (ngx_resolver_read_resolv_conf(cf, r,
|
||||
+ (u_char *)
|
||||
+ NGX_RESOLVER_FILE_NAME,
|
||||
+ sizeof(NGX_RESOLVER_FILE_NAME)
|
||||
+ - 1)
|
||||
+ != NGX_OK)
|
||||
+ {
|
||||
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||
+ "unable to parse local resolver");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ } else if (ngx_strcmp(&names[i].data[6], "off") != 0) {
|
||||
+ if (ngx_resolver_read_resolv_conf(cf, r,
|
||||
+ &names[i].data[6],
|
||||
+ names[i].len - 6)
|
||||
+ != NGX_OK)
|
||||
+ {
|
||||
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
|
||||
+ "unable to parse local resolver");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ continue;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
ngx_memzero(&u, sizeof(ngx_url_t));
|
||||
|
||||
u.url = names[i];
|
||||
|
|
@ -1,8 +1,30 @@
|
|||
diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c
|
||||
index 15680237..12a8c687 100644
|
||||
--- a/src/os/unix/ngx_process.c
|
||||
+++ b/src/os/unix/ngx_process.c
|
||||
@@ -362,8 +362,15 @@ ngx_signal_handler(int signo, siginfo_t *siginfo, void *ucontext)
|
||||
break;
|
||||
|
||||
case ngx_signal_value(NGX_RECONFIGURE_SIGNAL):
|
||||
- ngx_reconfigure = 1;
|
||||
- action = ", reconfiguring";
|
||||
+ if (ngx_process == NGX_PROCESS_SINGLE) {
|
||||
+ ngx_terminate = 1;
|
||||
+ action = ", exiting";
|
||||
+
|
||||
+ } else {
|
||||
+ ngx_reconfigure = 1;
|
||||
+ action = ", reconfiguring";
|
||||
+ }
|
||||
+
|
||||
break;
|
||||
|
||||
case ngx_signal_value(NGX_REOPEN_SIGNAL):
|
||||
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
|
||||
index 1710ea81..b379da9c 100644
|
||||
index 5817a2c2..f3d58e97 100644
|
||||
--- a/src/os/unix/ngx_process_cycle.c
|
||||
+++ b/src/os/unix/ngx_process_cycle.c
|
||||
@@ -304,11 +304,26 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
|
||||
@@ -305,11 +305,26 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
|
||||
}
|
||||
|
||||
for ( ;; ) {
|
||||
|
|
@ -30,7 +52,7 @@ index 1710ea81..b379da9c 100644
|
|||
|
||||
for (i = 0; cycle->modules[i]; i++) {
|
||||
if (cycle->modules[i]->exit_process) {
|
||||
@@ -319,6 +334,20 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
|
||||
@@ -320,6 +335,20 @@ ngx_single_process_cycle(ngx_cycle_t *cycle)
|
||||
ngx_master_process_exit(cycle);
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/src/stream/ngx_stream.h b/src/stream/ngx_stream.h
|
||||
index 09d2459..de92724 100644
|
||||
--- a/src/stream/ngx_stream.h
|
||||
+++ b/src/stream/ngx_stream.h
|
||||
@@ -303,4 +303,7 @@ typedef ngx_int_t (*ngx_stream_filter_pt)(ngx_stream_session_t *s,
|
||||
extern ngx_stream_filter_pt ngx_stream_top_filter;
|
||||
|
||||
|
||||
+#define HAS_NGX_STREAM_PROXY_GET_NEXT_UPSTREAM_TRIES_PATCH 1
|
||||
+
|
||||
+
|
||||
#endif /* _NGX_STREAM_H_INCLUDED_ */
|
||||
diff --git a/src/stream/ngx_stream_proxy_module.c b/src/stream/ngx_stream_proxy_module.c
|
||||
index 0afde1c..3254ce1 100644
|
||||
--- a/src/stream/ngx_stream_proxy_module.c
|
||||
+++ b/src/stream/ngx_stream_proxy_module.c
|
||||
@@ -2156,3 +2156,14 @@ ngx_stream_proxy_bind(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
|
||||
|
||||
return NGX_CONF_OK;
|
||||
}
|
||||
+
|
||||
+
|
||||
+ngx_uint_t
|
||||
+ngx_stream_proxy_get_next_upstream_tries(ngx_stream_session_t *s)
|
||||
+{
|
||||
+ ngx_stream_proxy_srv_conf_t *pscf;
|
||||
+
|
||||
+ pscf = ngx_stream_get_module_srv_conf(s, ngx_stream_proxy_module);
|
||||
+
|
||||
+ return pscf->next_upstream_tries;
|
||||
+}
|
||||
Loading…
Add table
Add a link
Reference in a new issue