Mercurial > hg > nginx-tests
annotate h3_server_name.t @ 1932:b68471aee5ad
Tests: improved test for a stream initiating QUIC path migration.
Previously, the test mostly passed due to a push timer scheduled for an
unrelated delayed ACK, and the new path had enough data received to send
response back when the push timer fired. Otherwise, the test could fail
due to unvalidated address. Now it is fixed to perform path validation.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 21 Aug 2023 17:10:57 +0400 |
parents | 236d038dc04a |
children |
rev | line source |
---|---|
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for HTTP/3 protocol, SNI TLS extension and regex in server_name. |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::HTTP2; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 use Test::Nginx::HTTP3; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 ############################################################################### |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDERR; $| = 1; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 select STDOUT; $| = 1; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 |
1894
cd66d6f50ec1
Tests: converted h3_server_name.t to use "socket_ssl_alpn".
Sergey Kandaurov <pluknet@nginx.com>
parents:
1882
diff
changeset
|
27 my $t = Test::Nginx->new() |
1896
8b74936ff2ac
Tests: added has_feature() test for CryptX.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1895
diff
changeset
|
28 ->has(qw/http http_ssl http_v2 http_v3 rewrite socket_ssl_alpn cryptx/) |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 ->has_daemon('openssl')->plan(6); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 $t->write_file_expand('nginx.conf', <<'EOF'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 %%TEST_GLOBALS%% |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 daemon off; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 events { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 http { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 %%TEST_GLOBALS_HTTP%% |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 ssl_certificate_key localhost.key; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 ssl_certificate localhost.crt; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 server { |
1895
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
47 listen 127.0.0.1:8443 ssl http2; |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 listen 127.0.0.1:%%PORT_8980_UDP%% quic; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 server_name ~^(?P<name>.+)\.example\.com$; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 location / { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 return 200 $name; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 EOF |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 $t->write_file('openssl.conf', <<EOF); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 [ req ] |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 default_bits = 2048 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 encrypt_key = no |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 distinguished_name = req_distinguished_name |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 [ req_distinguished_name ] |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 EOF |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 my $d = $t->testdir(); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 foreach my $name ('localhost') { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 system('openssl req -x509 -new ' |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 . "-config $d/openssl.conf -subj /CN=$name/ " |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 . "-out $d/$name.crt -keyout $d/$name.key " |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 . ">>$d/openssl.out 2>&1") == 0 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 or die "Can't create certificate for $name: $!\n"; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
1900
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1896
diff
changeset
|
77 # suppress deprecation warning |
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1896
diff
changeset
|
78 |
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1896
diff
changeset
|
79 open OLDERR, ">&", \*STDERR; close STDERR; |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 $t->run(); |
1900
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1896
diff
changeset
|
81 open STDERR, ">&", \*OLDERR; |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 ############################################################################### |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 # ssl_servername_regex wasn't inherited from QUIC connection, |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 # other protocols are provided for convenience |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 is(get1('test.example.com'), 'test', 'http1 - sni match'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 is(get1('test.example.com', 'localhost'), 'test', 'http1 - sni not found'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 is(get2('test.example.com'), 'test', 'http2 - sni match'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 is(get2('test.example.com', 'localhost'), 'test', 'http2 - sni not found'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 is(get3('test.example.com'), 'test', 'http3 - sni match'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 is(get3('test.example.com', 'localhost'), 'test', 'http3 - sni not found'); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 ############################################################################### |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 sub get1 { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 my ($host, $sni) = @_; |
1895
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
101 http("GET / HTTP/1.0\nHost: $host\n\n", |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
102 SSL => 1, |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
103 SSL_hostname => $sni || $host, |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
104 SSL_alpn_protocols => ['http/1.1']) |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
105 =~ /.*?\x0d\x0a?\x0d\x0a?(.*)/ms; |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 return $1; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 sub get2 { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 my ($host, $sni) = @_; |
1895
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
111 my $sock = http('', start => 1, |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
112 SSL => 1, |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
113 SSL_hostname => $sni || $host, |
acd68670b064
Tests: simplified using IO::Socket::SSL in h3_server_name.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1894
diff
changeset
|
114 SSL_alpn_protocols => ['h2']); |
1882
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 my $s = Test::Nginx::HTTP2->new(undef, socket => $sock); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 my $sid = $s->new_stream({ host => $host }); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 my ($frame) = grep { $_->{type} eq "DATA" } @$frames; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 return $frame->{data}; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 sub get3 { |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 my ($host, $sni) = @_; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 my $s = Test::Nginx::HTTP3->new(8980, sni => $sni || $host); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 my $sid = $s->new_stream({ host => $host }); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 my ($frame) = grep { $_->{type} eq "DATA" } @$frames; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 return $frame->{data}; |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 } |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
3619dcc8ba6d
Tests: HTTP/3 tests with server_name captures.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 ############################################################################### |