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