annotate proxy_protocol2.t @ 1571:1b4ceab9cb1c

Tests: fixed ssl_certificate.t with LibreSSL client. Net::SSLeay::connect() that manages TLS handshake could return unexpected error when receiving server alert, as seen in server certificate tests if it could not been selected. Typically, it returns the expected error -1, but with certain libssl implementations it can be 0, as explained below. The error is propagated from libssl's SSL_connect(), which is usually -1. In modern OpenSSL versions, it is the default error code used in the state machine returned when something went wrong with parsing TLS message header. In versions up to OpenSSL 1.0.2, with SSLv23_method() used by default, -1 is the only error code in the ssl_connect() method implementation which is used as well if receiving alert while parsing ServerHello. BoringSSL also seems to return -1. But it is not so with LibreSSL that returns zero. Previously, tests failed with client built with LibreSSL with SSLv3 removed. Here, the error is propagated directly from ssl_read_bytes() method, which is always implemented as ssl3_read_bytes() in all TLS methods. It could be also seen with OpenSSL up to 1.0.2 with non-default methods explicitly set.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 29 May 2020 23:10:20 +0300
parents b3bbb59dc324
children 64f19063adfe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for haproxy protocol.
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 ###############################################################################
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http access realip/);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
27 $t->write_file_expand('nginx.conf', <<'EOF')->plan(23);
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 daemon off;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 events {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 http {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
39 log_format pp $remote_addr:$remote_port;
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 listen 127.0.0.1:8080 proxy_protocol;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 server_name localhost;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 set_real_ip_from 127.0.0.1/32;
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
46 add_header X-IP $remote_addr!$remote_port;
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
47 add_header X-PP $proxy_protocol_addr!$proxy_protocol_port;
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 location /pp {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 real_ip_header proxy_protocol;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 error_page 404 =200 /t1;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 location /pp_4 {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 deny 192.0.2.1/32;
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
55 access_log %%TESTDIR%%/pp4.log pp;
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
57
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 location /pp_6 {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 deny 2001:DB8::1/128;
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
60 access_log %%TESTDIR%%/pp6.log pp;
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 }
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
63
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
64 location / { }
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 EOF
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 $t->write_file('t1', 'SEE-THIS');
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 $t->run();
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 ###############################################################################
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 my $p = pack("N3C", 0x0D0A0D0A, 0x000D0A51, 0x5549540A, 0x21);
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
76 my $tcp4 = $p . pack("CnN2n2", 0x11, 12, 0xc0000201, 0xc0000202, 123, 5678);
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 my $tcp6 = $p . pack("CnNx8NNx8Nn2", 0x21, 36,
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
78 0x20010db8, 0x00000001, 0x20010db8, 0x00000002, 123, 5678);
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
79 my $tlv = $p . pack("CnN2n2x9", 0x11, 21, 0xc0000201, 0xc0000202, 123, 5678);
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 my $unk1 = $p . pack("Cxx", 0x01);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 my $unk2 = $p . pack("CnC4", 0x41, 4, 1, 2, 3, 4);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 my $r;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 # no realip, just PROXY header parsing
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 $r = pp_get('/t1', $tcp4);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 like($r, qr/SEE-THIS/, 'tcp4 request');
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
88 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
89 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tcp4 client');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 $r = pp_get('/t1', $tcp6);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92 like($r, qr/SEE-THIS/, 'tcp6 request');
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
93 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
94 unlike($r, qr/X-IP: (2001:DB8::1|[^!]+!123\x0d)/i, 'tcp6 client');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 $r = pp_get('/t1', $tlv);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 like($r, qr/SEE-THIS/, 'tlv request');
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
98 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tlv proxy');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
99 unlike($r, qr/X-IP: (192.0.2.1|[^!]+!123\x0d)/, 'tlv client');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
101 $r = pp_get('/t1', $unk1);
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
102 like($r, qr/SEE-THIS/, 'unknown request 1');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
103 like($r, qr/X-PP: !\x0d/, 'unknown proxy 1');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
104
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
105 $r = pp_get('/t1', $unk2);
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
106 like($r, qr/SEE-THIS/, 'unknown request 2');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
107 like($r, qr/X-PP: !\x0d/, 'unknown proxy 2');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 # realip
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111 $r = pp_get('/pp', $tcp4);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 like($r, qr/SEE-THIS/, 'tcp4 request realip');
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
113 like($r, qr/X-PP: 192.0.2.1!123\x0d/, 'tcp4 proxy realip');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
114 like($r, qr/X-IP: 192.0.2.1!123\x0d/, 'tcp4 client realip');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116 $r = pp_get('/pp', $tcp6);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117 like($r, qr/SEE-THIS/, 'tcp6 request realip');
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
118 like($r, qr/X-PP: 2001:DB8::1!123\x0d/i, 'tcp6 proxy realip');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
119 like($r, qr/X-IP: 2001:DB8::1!123\x0d/i, 'tcp6 client realip');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121 # access
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123 $r = pp_get('/pp_4', $tcp4);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 like($r, qr/403 Forbidden/, 'tcp4 access');
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126 $r = pp_get('/pp_6', $tcp6);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 like($r, qr/403 Forbidden/, 'tcp6 access');
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 # client address in access.log
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131 $t->stop();
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132
1526
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
133 is($t->read_file('pp4.log'), "192.0.2.1:123\n", 'tcp4 log');
b3bbb59dc324 Tests: merged $proxy_protocol_port tests with the rest for brevity.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1381
diff changeset
134 is($t->read_file('pp6.log'), "2001:db8::1:123\n", 'tcp6 log');
1309
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 ###############################################################################
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138 sub pp_get {
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
139 my ($url, $proxy) = @_;
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140 return http($proxy . <<EOF);
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141 GET $url HTTP/1.0
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 Host: localhost
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 EOF
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145 }
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146
3eb1de7e3b41 Tests: proxy protocol v2 tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 ###############################################################################