Mercurial > hg > nginx-tests
annotate proxy_protocol2_tlv.t @ 1851:0351dee227a8
Tests: unbreak tests with dynamic certificates on stable.
In 74cffa9d4c43, ticket based session reuse is enabled in addition to
using a shared SSL session cache. This changed how a session can be
resumed in a different server:
- for a session ID based resumption, it is resumed in the same context
- when using session tickets, a key name is also checked for matching
- with a ticket callback, this is skipped in favor of callback's logic
This makes 'session id context match' tests fail with session tickets
on stable since ticket key names are unique in distinct SSL contexts.
On the other hand, tests pass on 1.23.2+ due to automatic ticket keys
rotation that installs ticket callback, and using a common shared SSL
session cache.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 28 Mar 2023 01:36:32 +0400 |
parents | 76fdf5ede7c0 |
children | a095b971fbcc |
rev | line source |
---|---|
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
2 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
3 # (C) Roman Arutyunyan |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
4 # (C) Eugene Grebenschikov |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
5 # (C) Nginx, Inc. |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
6 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
7 # Tests for variables for proxy protocol v2 TLVs. |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
8 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
9 ############################################################################### |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
10 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
11 use warnings; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
12 use strict; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
13 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
14 use Test::More; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
15 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
16 BEGIN { use FindBin; chdir($FindBin::Bin); } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
17 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
18 use lib 'lib'; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
19 use Test::Nginx; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
20 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
21 ############################################################################### |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
22 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
25 |
1803
4627e750efdd
Tests: removed rewrite dependency in proxy_protocol2_tlv.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1802
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http map/) |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
28 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
30 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
31 daemon off; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
32 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
33 events { |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
34 } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
35 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
36 http { |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
38 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
39 map $proxy_protocol_tlv_ssl $binary_present { |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
40 "~\\x00" "true"; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
41 } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
42 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
43 add_header X-ALPN |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
44 $proxy_protocol_tlv_alpn-$proxy_protocol_tlv_0x01; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
45 add_header X-AUTHORITY |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
46 $proxy_protocol_tlv_authority-$proxy_protocol_tlv_0x02; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
47 add_header X-UNIQUE-ID |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
48 $proxy_protocol_tlv_unique_id-$proxy_protocol_tlv_0x05; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
49 add_header X-NETNS |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
50 $proxy_protocol_tlv_netns-$proxy_protocol_tlv_0x30; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
51 add_header X-SSL-VERIFY |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
52 $proxy_protocol_tlv_ssl_verify; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
53 add_header X-SSL-VERSION |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
54 $proxy_protocol_tlv_ssl_version-$proxy_protocol_tlv_ssl_0x21; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
55 add_header X-SSL-CN |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
56 $proxy_protocol_tlv_ssl_cn-$proxy_protocol_tlv_ssl_0x22; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
57 add_header X-SSL-CIPHER |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
58 $proxy_protocol_tlv_ssl_cipher-$proxy_protocol_tlv_ssl_0x23; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
59 add_header X-SSL-SIG-ALG |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
60 $proxy_protocol_tlv_ssl_sig_alg-$proxy_protocol_tlv_ssl_0x24; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
61 add_header X-SSL-KEY-ALG |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
62 $proxy_protocol_tlv_ssl_key_alg-$proxy_protocol_tlv_ssl_0x25; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
63 add_header X-TLV-CRC32C |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
64 $proxy_protocol_tlv_0x3; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
65 add_header X-TLV-CUSTOM |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
66 $proxy_protocol_tlv_0x000ae; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
67 add_header X-TLV-X |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
68 $proxy_protocol_tlv_0x000e-$proxy_protocol_tlv_0x0f; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
69 add_header X-SSL-BINARY |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
70 $binary_present; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
71 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
72 server { |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
73 listen 127.0.0.1:8080 proxy_protocol; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
74 server_name localhost; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
75 |
1803
4627e750efdd
Tests: removed rewrite dependency in proxy_protocol2_tlv.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1802
diff
changeset
|
76 location / { } |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
77 } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
78 } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
79 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
80 EOF |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
81 |
1803
4627e750efdd
Tests: removed rewrite dependency in proxy_protocol2_tlv.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1802
diff
changeset
|
82 $t->write_file('t1', 'SEE-THIS'); |
1805
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
83 $t->try_run('no proxy_protocol tlv')->plan(14); |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
84 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
85 ############################################################################### |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
86 |
1805
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
87 my $tlv = pp2_create_tlv(0x1, "ALPN1"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
88 $tlv .= pp2_create_tlv(0x2, "localhost"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
89 $tlv .= pp2_create_tlv(0x3, "4321"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
90 $tlv .= pp2_create_tlv(0x5, "UNIQQ"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
91 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
92 my $sub = pp2_create_tlv(0x21, "TLSv1.2"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
93 $sub .= pp2_create_tlv(0x22, "example.com"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
94 $sub .= pp2_create_tlv(0x23, "AES256-SHA"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
95 $sub .= pp2_create_tlv(0x24, "SHA1"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
96 $sub .= pp2_create_tlv(0x25, "RSA512"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
97 my $ssl = pp2_create_ssl(0x01, 255, $sub); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
98 $tlv .= pp2_create_tlv(0x20, $ssl); |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
99 |
1805
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
100 $tlv .= pp2_create_tlv(0x30, "NETNS"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
101 $tlv .= pp2_create_tlv(0xae, "12345"); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
102 my $p = pp2_create($tlv); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
103 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
104 my $r = pp_get('/t1', $p); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
105 like($r, qr/X-ALPN: ALPN1-ALPN1\x0d?$/m, 'ALPN'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
106 like($r, qr/X-AUTHORITY: localhost-localhost\x0d?$/m, 'AUTHORITY'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
107 like($r, qr/X-TLV-CRC32C: 4321\x0d?$/m, 'CRC32C'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
108 like($r, qr/X-UNIQUE-ID: UNIQQ-UNIQQ\x0d?$/m, 'UNIQUE_ID'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
109 like($r, qr/X-SSL-BINARY: true/, 'SSL_BINARY'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
110 like($r, qr/X-SSL-VERIFY: 255\x0d?$/m, 'SSL_VERIFY'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
111 like($r, qr/X-SSL-VERSION: TLSv1.2-TLSv1.2\x0d?$/m, 'SSL_VERSION'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
112 like($r, qr/X-SSL-CN: example.com-example.com\x0d?$/m, 'SSL_CN'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
113 like($r, qr/X-SSL-CIPHER: AES256-SHA-AES256-SHA\x0d?$/m, 'SSL_CIPHER'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
114 like($r, qr/X-SSL-SIG-ALG: SHA1-SHA1\x0d?$/m, 'SSL_SIG_ALG'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
115 like($r, qr/X-SSL-KEY-ALG: RSA512-RSA512\x0d?$/m, 'SSL_KEY_ALG'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
116 like($r, qr/X-NETNS: NETNS-NETNS\x0d?$/m, 'NETNS'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
117 like($r, qr/X-TLV-CUSTOM: 12345\x0d?$/m, 'custom'); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
118 like($r, qr/X-TLV-X: -\x0d?$/m, 'non-existent'); |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
119 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
120 ############################################################################### |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
121 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
122 sub pp_get { |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
123 my ($url, $proxy) = @_; |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
124 return http($proxy . <<EOF); |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
125 GET $url HTTP/1.0 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
126 Host: localhost |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
127 |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
128 EOF |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
129 } |
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
130 |
1805
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
131 sub pp2_create { |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
132 my ($tlv) = @_; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
133 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
134 my $pp2_sig = pack("N3", 0x0D0A0D0A, 0x000D0A51, 0x5549540A); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
135 my $ver_cmd = pack('C', 0x21); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
136 my $family = pack('C', 0x11); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
137 my $packet = $pp2_sig . $ver_cmd . $family; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
138 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
139 my $ip1 = pack('N', 0xc0000201); # 192.0.2.1 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
140 my $ip2 = pack('N', 0xc0000202); # 192.0.2.2 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
141 my $port1 = pack('n', 123); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
142 my $port2 = pack('n', 5678); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
143 my $addrs = $ip1 . $ip2 . $port1 . $port2; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
144 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
145 my $len = length($addrs) + length($tlv); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
146 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
147 $packet .= pack('n', $len) . $addrs . $tlv; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
148 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
149 return $packet; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
150 } |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
151 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
152 sub pp2_create_tlv { |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
153 my ($type, $content) = @_; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
154 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
155 my $len = length($content); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
156 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
157 return pack("CnA*", $type, $len, $content); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
158 } |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
159 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
160 sub pp2_create_ssl { |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
161 my ($client, $verify, $content) = @_; |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
162 |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
163 return pack("CNA*", $client, $verify, $content); |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
164 } |
76fdf5ede7c0
Tests: improved readability in PROXY protocol v2 TLV tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1804
diff
changeset
|
165 |
1800
074974eb9182
Tests: variables for proxy protocol v2 TLVs
Eugene Grebenschikov <e.grebenshchikov@f5.com>
parents:
diff
changeset
|
166 ############################################################################### |