Mercurial > hg > nginx
changeset 4732:613390a974df stable-1.2
Merge of r4698: X-Forwarded-For conditionals.
Fixed compile-time conditionals used to detect if X-Forwarded-For support
is needed.
Note: compatibility shims were added during merge to avoid possible
breakage of 3rd party modules. At least cache purge module was broken
by the original commit, as it used to rely on NGX_HTTP_PROXY define.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 02 Jul 2012 17:41:52 +0000 |
parents | 9efa21520c84 |
children | f9d796a201da |
files | auto/modules src/http/ngx_http_request.c src/http/ngx_http_request.h src/http/ngx_http_variables.c |
diffstat | 4 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/auto/modules Mon Jul 02 17:25:51 2012 +0000 +++ b/auto/modules Mon Jul 02 17:41:52 2012 +0000 @@ -223,6 +223,7 @@ if [ $HTTP_REALIP = YES ]; then have=NGX_HTTP_REALIP . auto/have + have=NGX_HTTP_X_FORWARDED_FOR . auto/have HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE" HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS" fi @@ -234,11 +235,13 @@ if [ $HTTP_GEO = YES ]; then have=NGX_HTTP_GEO . auto/have + have=NGX_HTTP_X_FORWARDED_FOR . auto/have HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE" HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS" fi if [ $HTTP_GEOIP = YES ]; then + have=NGX_HTTP_X_FORWARDED_FOR . auto/have HTTP_MODULES="$HTTP_MODULES $HTTP_GEOIP_MODULE" HTTP_SRCS="$HTTP_SRCS $HTTP_GEOIP_SRCS" fi @@ -274,6 +277,7 @@ if [ $HTTP_PROXY = YES ]; then have=NGX_HTTP_PROXY . auto/have + have=NGX_HTTP_X_FORWARDED_FOR . auto/have #USE_MD5=YES HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE" HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
--- a/src/http/ngx_http_request.c Mon Jul 02 17:25:51 2012 +0000 +++ b/src/http/ngx_http_request.c Mon Jul 02 17:41:52 2012 +0000 @@ -138,7 +138,7 @@ { ngx_string("Keep-Alive"), offsetof(ngx_http_headers_in_t, keep_alive), ngx_http_process_header_line }, -#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO) +#if (NGX_HTTP_X_FORWARDED_FOR) { ngx_string("X-Forwarded-For"), offsetof(ngx_http_headers_in_t, x_forwarded_for), ngx_http_process_header_line },
--- a/src/http/ngx_http_request.h Mon Jul 02 17:25:51 2012 +0000 +++ b/src/http/ngx_http_request.h Mon Jul 02 17:41:52 2012 +0000 @@ -137,6 +137,13 @@ #define NGX_HTTP_COPY_BUFFERED 0x04 +#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO) +#ifndef NGX_HTTP_X_FORWARDED_FOR +#define NGX_HTTP_X_FORWARDED_FOR 1 +#endif +#endif + + typedef enum { NGX_HTTP_INITING_REQUEST_STATE = 0, NGX_HTTP_READING_REQUEST_STATE, @@ -192,7 +199,7 @@ ngx_table_elt_t *keep_alive; -#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP || NGX_HTTP_GEO) +#if (NGX_HTTP_X_FORWARDED_FOR) ngx_table_elt_t *x_forwarded_for; #endif
--- a/src/http/ngx_http_variables.c Mon Jul 02 17:25:51 2012 +0000 +++ b/src/http/ngx_http_variables.c Mon Jul 02 17:41:52 2012 +0000 @@ -134,7 +134,7 @@ offsetof(ngx_http_request_t, headers_in.via), 0, 0 }, #endif -#if (NGX_HTTP_PROXY || NGX_HTTP_REALIP) +#if (NGX_HTTP_X_FORWARDED_FOR) { ngx_string("http_x_forwarded_for"), NULL, ngx_http_variable_header, offsetof(ngx_http_request_t, headers_in.x_forwarded_for), 0, 0 }, #endif