changeset 245:7189255c1b91

Tests: added real_ip_recursive test.
author Andrei Belov <defan@nginx.com>
date Mon, 14 Jan 2013 19:49:41 +0400
parents a675a0d1d19d
children 6072306b7924
files realip.t
diffstat 1 files changed, 22 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/realip.t
+++ b/realip.t
@@ -35,15 +35,23 @@ events {
 http {
     %%TEST_GLOBALS_HTTP%%
 
-    set_real_ip_from  127.0.0.1/32;
+    add_header X-IP $remote_addr;
     real_ip_header    X-Forwarded-For;
 
     server {
         listen       127.0.0.1:8080;
         server_name  localhost;
 
-        location / {
-            add_header X-IP $remote_addr;
+        location /1 {
+            set_real_ip_from  127.0.0.1/32;
+            set_real_ip_from  10.0.1.0/24;
+            real_ip_recursive off;
+        }
+
+        location /2 {
+            set_real_ip_from  127.0.0.1/32;
+            set_real_ip_from  10.0.1.0/24;
+            real_ip_recursive on;
         }
     }
 }
@@ -51,24 +59,30 @@ http {
 EOF
 
 $t->write_file('1', '');
+$t->write_file('2', '');
 $t->run();
 
 plan(skip_all => 'no 127.0.0.1 on host')
 	if http_get('/1') !~ /X-IP: 127.0.0.1/m;
 
-$t->plan(2);
+$t->plan(4);
 
 ###############################################################################
 
-like(http_xff('192.0.2.1'), qr/^X-IP: 192.0.2.1/m, 'realip');
-like(http_xff('10.0.0.1, 192.0.2.1'), qr/^X-IP: 192.0.2.1/m, 'realip multi');
+like(http_xff('/1', '192.0.2.1'), qr/^X-IP: 192.0.2.1/m, 'realip');
+like(http_xff('/1', '10.0.0.1, 192.0.2.1'), qr/^X-IP: 192.0.2.1/m,
+        'realip multi');
+like(http_xff('/1', '192.0.2.1, 10.0.1.1, 127.0.0.1'),
+	qr/^X-IP: 127.0.0.1/m, 'realip recursive off');
+like(http_xff('/2', '192.0.2.1, 10.0.1.1, 127.0.0.1'),
+	qr/^X-IP: 192.0.2.1/m, 'realip recursive on');
 
 ###############################################################################
 
 sub http_xff {
-	my ($xff) = @_;
+	my ($uri, $xff) = @_;
 	return http(<<EOF);
-GET /1 HTTP/1.0
+GET $uri HTTP/1.0
 Host: localhost
 X-Forwarded-For: $xff