# HG changeset patch # User Andrei Belov # Date 1358178581 -14400 # Node ID 7189255c1b9146e1e8acef31932ff64a838c7f7f # Parent a675a0d1d19d789111ccaae5f62d85175a5f4517 Tests: added real_ip_recursive test. diff --git a/realip.t b/realip.t --- 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(<