changeset 811:dba758c045ed

Tests: proxy protocol tests on IPv6 socket.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 17 Dec 2015 17:18:07 +0300
parents a4f806eb4426
children acec03d44976
files proxy_protocol_ipv6.t
diffstat 1 files changed, 83 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/proxy_protocol_ipv6.t
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+
+# (C) Sergey Kandaurov
+# (C) Nginx, Inc.
+
+# Tests for haproxy protocol on IPv6 listening socket.
+
+###############################################################################
+
+use warnings;
+use strict;
+
+use Test::More;
+
+BEGIN { use FindBin; chdir($FindBin::Bin); }
+
+use lib 'lib';
+use Test::Nginx;
+
+###############################################################################
+
+select STDERR; $| = 1;
+select STDOUT; $| = 1;
+
+my $t = Test::Nginx->new()->has(qw/http ipv6 realip stream/)->plan(3);
+
+$t->write_file_expand('nginx.conf', <<'EOF');
+
+%%TEST_GLOBALS%%
+
+daemon off;
+
+events {
+}
+
+http {
+    %%TEST_GLOBALS_HTTP%%
+
+    server {
+        listen       [::1]:8080 proxy_protocol;
+        server_name  localhost;
+
+        add_header X-IP $remote_addr;
+        add_header X-PP $proxy_protocol_addr;
+        real_ip_header proxy_protocol;
+
+        location / { }
+        location /pp {
+            set_real_ip_from ::1/128;
+            error_page 404 =200 /t;
+        }
+    }
+}
+
+stream {
+    server {
+        listen      127.0.0.1:8080;
+        proxy_pass  [::1]:8080;
+
+        proxy_protocol on;
+    }
+}
+
+EOF
+
+$t->write_file('t', 'SEE-THIS');
+$t->run();
+
+###############################################################################
+
+TODO: {
+local $TODO = 'not yet' unless $t->has_version('1.9.10');
+
+my $r = http_get('/t');
+like($r, qr/X-IP: ::1/, 'realip');
+like($r, qr/X-PP: 127.0.0.1/, 'proxy protocol');
+
+$r = http_get('/pp');
+like($r, qr/X-IP: 127.0.0.1/, 'proxy protocol realip');
+
+}
+
+###############################################################################