diff options
author | Roman Arutyunyan <arut@nginx.com> | 2018-02-22 13:16:21 +0300 |
---|---|---|
committer | Roman Arutyunyan <arut@nginx.com> | 2018-02-22 13:16:21 +0300 |
commit | dd7dba520c20eb81576cfa5afd4570c50e83c990 (patch) | |
tree | 477ecc1e77e6f0d4bd6155ee55c0e8ef2c0ee146 /src/event/ngx_event_connect.c | |
parent | bcda92e843ca4f80df96bceba5918a73eaf1a71c (diff) | |
download | nginx-dd7dba520c20eb81576cfa5afd4570c50e83c990.tar.gz nginx-dd7dba520c20eb81576cfa5afd4570c50e83c990.zip |
Generate error for unsupported IPv6 transparent proxy.
On some platforms (for example, Linux with glibc 2.12-2.25) IPv4 transparent
proxying is available, but IPv6 transparent proxying is not. The entire feature
is enabled in this case and NGX_HAVE_TRANSPARENT_PROXY macro is set to 1.
Previously, an attempt to enable transparency for an IPv6 socket was silently
ignored in this case and was usually followed by a bind(2) EADDRNOTAVAIL error
(ticket #1487). Now the error is generated for unavailable IPv6 transparent
proxy.
Diffstat (limited to 'src/event/ngx_event_connect.c')
-rw-r--r-- | src/event/ngx_event_connect.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c index c5bb80681..e7f28c90e 100644 --- a/src/event/ngx_event_connect.c +++ b/src/event/ngx_event_connect.c @@ -388,7 +388,16 @@ ngx_event_connect_set_transparent(ngx_peer_connection_t *pc, ngx_socket_t s) return NGX_ERROR; } +#else + + ngx_log_error(NGX_LOG_ALERT, pc->log, 0, + "could not enable transparent proxying for IPv6 " + "on this platform"); + + return NGX_ERROR; + #endif + break; #endif /* NGX_HAVE_INET6 */ |