mirror of https://github.com/openresty/openresty
feature: applied the safe_resolver_ipv6_option patch to the nginx core to avoid the 'ipv6=off' option to be parsed by nginx when it is not built with IPv6 support.
Signed-off-by: Yichun Zhang (agentzh) <agentzh@gmail.com>pull/219/head
parent
b1c4280777
commit
b490cfeea4
@ -0,0 +1,55 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Thibault Charbonnier <thibaultcha@fastmail.com>
|
||||||
|
# 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 -r a3dc657f4e95 -r 8bf038fe006f src/core/ngx_resolver.c
|
||||||
|
--- a/src/core/ngx_resolver.c Thu Dec 15 21:44:34 2016 +0300
|
||||||
|
+++ b/src/core/ngx_resolver.c Thu Dec 15 16:17:01 2016 -0800
|
||||||
|
@@ -224,14 +224,22 @@
|
||||||
|
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,
|
||||||
|
@@ -241,7 +249,6 @@
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
-#endif
|
||||||
|
|
||||||
|
ngx_memzero(&u, sizeof(ngx_url_t));
|
||||||
|
|
Loading…
Reference in New Issue