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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################