Tests: added real_ip_recursive test.
diff --git a/realip.t b/realip.t index b88b596..bd81426 100644 --- a/realip.t +++ b/realip.t
@@ -35,15 +35,23 @@ 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 @@ 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