annotate http_resolver_aaaa.t @ 734:78b4e12e6efe

Tests: adjusted http_resolver_aaaa.t test timeouts. Made more room for connection establishment to backend.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 12 Oct 2015 12:57:03 +0300
parents 847ea345becb
children 50a0001a56f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
6 # Tests for AAAA capable http resolver.
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 ###############################################################################
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http proxy rewrite ipv6/);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
26
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 $t->write_file_expand('nginx.conf', <<'EOF');
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 daemon off;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 events {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 http {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 server {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 listen 127.0.0.1:8080;
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
41 listen [::1]:8080;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 server_name localhost;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 location / {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 resolver 127.0.0.1:8081;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 proxy_pass http://$host:8080/backend;
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
47
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
48 proxy_next_upstream http_504 timeout error;
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
49 proxy_intercept_errors on;
734
78b4e12e6efe Tests: adjusted http_resolver_aaaa.t test timeouts.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
50 proxy_connect_timeout 100ms;
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
51 error_page 504 502 /50x;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 }
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
53 location /two {
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 resolver 127.0.0.1:8081 127.0.0.1:8082;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 proxy_pass http://$host:8080/backend;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 location /backend {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 return 200;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 location /50x {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 return 200 $upstream_addr;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 EOF
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68
392
c28ecaef065f Tests: try_run() introduced.
Maxim Dounin <mdounin@mdounin.ru>
parents: 360
diff changeset
69 $t->try_run('no inet6 support')->plan(72);
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
70
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
71 $t->run_daemon(\&dns_daemon, 8081, $t);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
72 $t->run_daemon(\&dns_daemon, 8082, $t);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
73
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
74 $t->waitforfile($t->testdir . '/8081');
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
75 $t->waitforfile($t->testdir . '/8082');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 ###############################################################################
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
79 my (@n, $response);
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
81 like(http_host_header('aaaa.example.net', '/'), qr/\[fe80::1\]/, 'AAAA');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
82 like(http_host_header('cname.example.net', '/'), qr/\[fe80::1\]/, 'CNAME');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
83 like(http_host_header('cname.example.net', '/'), qr/\[fe80::1\]/,
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 'CNAME cached');
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
86 # CNAME + AAAA combined answer
356
7a472e46772c Tests: added http resolver test for CNAME + A combined answer.
Sergey Kandaurov <pluknet@nginx.com>
parents: 352
diff changeset
87 # demonstrates the name in answer section different from what is asked
7a472e46772c Tests: added http resolver test for CNAME + A combined answer.
Sergey Kandaurov <pluknet@nginx.com>
parents: 352
diff changeset
88
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
89 like(http_host_header('cname_a.example.net', '/'), qr/200 OK/, 'CNAME + AAAA');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
91 # many AAAA records in round robin
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92 # nonexisting IPs enumerated with proxy_next_upstream
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
94 like(http_host_header('many.example.net', '/'),
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
95 qr/^\[fe80::(1\]:8080, \[fe80::2\]:8080|2\]:8080, \[fe80::1\]:8080)$/m,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
96 'AAAA many');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
98 like(http_host_header('many.example.net', '/'),
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
99 qr/^\[fe80::(1\]:8080, \[fe80::2\]:8080|2\]:8080, \[fe80::1\]:8080)$/m,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
100 'AAAA many cached');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
102 # tests for several resolvers specified in directive
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
103 # query bad ns, make sure that error responses are not cached
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 like(http_host_header('2.example.net', '/two'), qr/502 Bad/, 'two ns bad');
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
107 # now get correct response
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 like(http_host_header('2.example.net', '/two'), qr/200 OK/, 'two ns good');
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
111 # response is cached, actual request would get error
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113 like(http_host_header('2.example.net', '/two'), qr/200 OK/, 'two ns cached');
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
115 # various ipv4/ipv6 combinations
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
117 $response = http_host_header('z_z.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
118 is(@n = $response =~ /8080/g, 0, 'zero zero responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
119 like($response, qr/502 Bad/, 'zero zero');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
121 like(http_host_header('z_n.example.net', '/'), qr/^\[fe80::1\]:8080$/ms,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
122 'zero AAAA');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
124 $response = http_host_header('z_c.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
125 is(@n = $response =~ /8080/g, 2, 'zero CNAME responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
126 like($response, qr/127.0.0.201:8080/, 'zero CNAME 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
127 like($response, qr/\[fe80::1\]:8080/, 'zero CNAME 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
129 $response = http_host_header('z_cn.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
130 is(@n = $response =~ /8080/g, 2, 'zero CNAME+AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
131 like($response, qr/\[fe80::1\]:8080/, 'zero CNAME+AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
132 like($response, qr/\[fe80::2\]:8080/, 'zero CNAME+AAAA 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
134 $response = http_host_header('z_e.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
135 is(@n = $response =~ /8080/g, 0, 'zero error responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
136 like($response, qr/502 Bad/, 'zero error');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
137
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
138 like(http_host_header('n_z.example.net', '/'), qr/^127.0.0.201:8080$/ms,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
139 'A zero');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
141 $response = http_host_header('n_n.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
142 is(@n = $response =~ /8080/g, 2, 'A AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
143 like($response, qr/127.0.0.201:8080/, 'A AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
144 like($response, qr/\[fe80::1\]:8080/, 'A AAAA 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
146 like(http_host_header('n_c.example.net', '/'), qr/^127.0.0.201:8080$/ms,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
147 'A CNAME');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
149 $response = http_host_header('n_cn.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
150 is(@n = $response =~ /8080/g, 4, 'A CNAME+AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
151 like($response, qr/127.0.0.201:8080/, 'A CNAME+AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
152 like($response, qr/127.0.0.202:8080/, 'A CNAME+AAAA 2');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
153 like($response, qr/\[fe80::1\]:8080/, 'A CNAME+AAAA 3');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
154 like($response, qr/\[fe80::2\]:8080/, 'A CNAME+AAAA 4');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
155
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
156 $response = http_host_header('n_e.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
157 is(@n = $response =~ /8080/g, 0, 'A error responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
158 like($response, qr/502 Bad/, 'A error');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
159
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
160 $response = http_host_header('c_z.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
161 is(@n = $response =~ /8080/g, 0, 'CNAME zero responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
162 like($response, qr/502 Bad/, 'CNAME zero');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
164 like(http_host_header('c_n.example.net', '/'), qr/^\[fe80::1\]:8080$/ms,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
165 'CNAME AAAA');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
166
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
167 $response = http_host_header('c_c.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
168 is(@n = $response =~ /8080/g, 2, 'CNAME CNAME responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
169 like($response, qr/127.0.0.201:8080/, 'CNAME CNAME 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
170 like($response, qr/\[fe80::1\]:8080/, 'CNAME CNAME 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
171
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
172 like(http_host_header('c1_c2.example.net', '/'), qr/^\[fe80::1\]:8080$/ms,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
173 'CNAME1 CNAME2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
174
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
175 $response = http_host_header('c_cn.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
176 is(@n = $response =~ /8080/g, 2, 'CNAME CNAME+AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
177 like($response, qr/\[fe80::1\]:8080/, 'CNAME CNAME+AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
178 like($response, qr/\[fe80::2\]:8080/, 'CNAME CNAME+AAAA 1');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
179
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
180 $response = http_host_header('c_e.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
181 is(@n = $response =~ /8080/g, 0, 'CNAME error responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
182 like($response, qr/502 Bad/, 'CNAME error');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
183
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
184 $response = http_host_header('cn_z.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
185 is(@n = $response =~ /8080/g, 2, 'CNAME+A zero responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
186 like($response, qr/127.0.0.201:8080/, 'CNAME+A zero 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
187 like($response, qr/127.0.0.202:8080/, 'CNAME+A zero 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
188
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
189 $response = http_host_header('cn_n.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
190 is(@n = $response =~ /8080/g, 4, 'CNAME+A AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
191 like($response, qr/127.0.0.201:8080/, 'CNAME+A AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
192 like($response, qr/127.0.0.202:8080/, 'CNAME+A AAAA 2');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
193 like($response, qr/\[fe80::1\]:8080/, 'CNAME+A AAAA 3');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
194 like($response, qr/\[fe80::2\]:8080/, 'CNAME+A AAAA 4');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
195
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
196 $response = http_host_header('cn_c.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
197 is(@n = $response =~ /8080/g, 2, 'CNAME+A CNAME responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
198 like($response, qr/127.0.0.201:8080/, 'CNAME+A CNAME 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
199 like($response, qr/127.0.0.202:8080/, 'CNAME+A CNAME 2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
200
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
201 $response = http_host_header('cn_cn.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
202 is(@n = $response =~ /8080/g, 4, 'CNAME+A CNAME+AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
203 like($response, qr/127.0.0.201:8080/, 'CNAME+A CNAME+AAAA 1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
204 like($response, qr/127.0.0.202:8080/, 'CNAME+A CNAME+AAAA 2');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
205 like($response, qr/\[fe80::1\]:8080/, 'CNAME+A CNAME+AAAA 3');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
206 like($response, qr/\[fe80::2\]:8080/, 'CNAME+A CNAME+AAAA 4');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
207
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
208 $response = http_host_header('cn_e.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
209 is(@n = $response =~ /8080/g, 0, 'CNAME+A error responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
210 like($response, qr/502 Bad/, 'CNAME+A error');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
211
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
212 $response = http_host_header('e_z.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
213 is(@n = $response =~ /8080/g, 0, 'error zero responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
214 like($response, qr/502 Bad/, 'error zero');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
215
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
216 $response = http_host_header('e_n.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
217 is(@n = $response =~ /8080/g, 0, 'error AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
218 like($response, qr/502 Bad/, 'error AAAA');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
219
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
220 $response = http_host_header('e_c.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
221 is(@n = $response =~ /8080/g, 0, 'error CNAME responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
222 like($response, qr/502 Bad/, 'error CNAME');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
223
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
224 $response = http_host_header('e_cn.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
225 is(@n = $response =~ /8080/g, 0, 'error CNAME+AAAA responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
226 like($response, qr/502 Bad/, 'error CNAME+AAAA');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
227
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
228 $response = http_host_header('e_e.example.net', '/');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
229 is(@n = $response =~ /8080/g, 0, 'error error responses');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
230 like($response, qr/502 Bad/, 'error error');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
231
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
232 ###############################################################################
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
233
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
234 sub http_host_header {
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
235 my ($host, $uri) = @_;
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
236 return http(<<EOF);
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
237 GET $uri HTTP/1.0
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
238 Host: $host
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
239
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
240 EOF
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
241 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
242
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
243 ###############################################################################
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
244
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
245 sub reply_handler {
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
246 my ($recv_data, $port, $state) = @_;
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
247
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
248 my (@name, @rdata);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
249
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
250 use constant NOERROR => 0;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
251 use constant SERVFAIL => 2;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
252 use constant NXDOMAIN => 3;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
253
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
254 use constant A => 1;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
255 use constant CNAME => 5;
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
256 use constant AAAA => 28;
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
257 use constant DNAME => 39;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
258
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
259 use constant IN => 1;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
260
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
261 # default values
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
262
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
263 my ($hdr, $rcode, $ttl) = (0x8180, NOERROR, 3600);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
264
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
265 # decode name
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
266
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
267 my ($len, $offset) = (undef, 12);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
268 while (1) {
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
269 $len = unpack("\@$offset C", $recv_data);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
270 last if $len == 0;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
271 $offset++;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
272 push @name, unpack("\@$offset A$len", $recv_data);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
273 $offset += $len;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
274 }
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
275
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
276 $offset -= 1;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
277 my ($id, $type, $class) = unpack("n x$offset n2", $recv_data);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
278
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
279 my $name = join('.', @name);
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
280 if (($name eq 'aaaa.example.net') || ($name eq 'alias.example.net')) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
281 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
282 push @rdata, rd_addr6($ttl, "fe80::1");
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
283 }
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
284
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
285 } elsif ($name eq 'alias2.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
286 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
287 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
288 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
289 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
290 push @rdata, rd_addr6($ttl, "fe80::1");
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
291 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
292
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
293 } elsif ($name eq 'alias4.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
294 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
295 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
296 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
297
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
298 } elsif ($name eq 'alias6.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
299 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
300 push @rdata, rd_addr6($ttl, "fe80::1");
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
301 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
302
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
303 } elsif (($name eq 'many.example.net') && $type == AAAA) {
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
304 $state->{manycnt}++;
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
305 if ($state->{manycnt} > 1) {
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
306 $rcode = SERVFAIL;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
307 }
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
308
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
309 push @rdata, rd_addr6($ttl, 'fe80::1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
310 push @rdata, rd_addr6($ttl, 'fe80::2');
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
311
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
312 } elsif ($name eq 'cname.example.net') {
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
313 $state->{cnamecnt}++;
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
314 if ($state->{cnamecnt} > 2) {
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
315 $rcode = SERVFAIL;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
316 }
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
317 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
318 8, 5, 'alias', 0xc012);
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
319
356
7a472e46772c Tests: added http resolver test for CNAME + A combined answer.
Sergey Kandaurov <pluknet@nginx.com>
parents: 352
diff changeset
320 } elsif ($name eq 'cname_a.example.net') {
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
321 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
322 8, 5, 'alias', 0xc014);
356
7a472e46772c Tests: added http resolver test for CNAME + A combined answer.
Sergey Kandaurov <pluknet@nginx.com>
parents: 352
diff changeset
323
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
324 # points to "alias" set in previous rdata
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
325
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
326 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
327 push @rdata, pack('n3N nn8', 0xc031, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
328 16, expand_ip6("::1"));
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
329 }
356
7a472e46772c Tests: added http resolver test for CNAME + A combined answer.
Sergey Kandaurov <pluknet@nginx.com>
parents: 352
diff changeset
330
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
331 } elsif ($name eq '2.example.net') {
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
332 if ($port == 8081) {
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
333 $state->{twocnt}++;
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
334 }
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
335 if ($state->{twocnt} & 1) {
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
336 $rcode = SERVFAIL;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
337 }
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
338
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
339 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
340 push @rdata, rd_addr6($ttl, '::1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
341 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
342
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
343 } elsif ($name eq 'z_z.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
344 # assume no answers given
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
345
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
346 } elsif ($name eq 'z_n.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
347 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
348 push @rdata, rd_addr6($ttl, 'fe80::1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
349 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
350
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
351 } elsif ($name eq 'z_c.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
352 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
353 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
354 9, 6, 'alias2', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
355 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
356
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
357 } elsif ($name eq 'z_cn.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
358 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
359 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
360 8, 5, 'alias', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
361 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
362 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
363 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
364 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
365 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
366
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
367 } elsif ($name eq 'z_e.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
368 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
369 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
370 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
371
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
372 } elsif ($name eq 'n_z.example.net') {
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
373 if ($type == A) {
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
374 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
375 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
376
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
377 } elsif ($name eq 'n_n.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
378 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
379 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
380 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
381 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
382 push @rdata, rd_addr6($ttl, 'fe80::1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
383 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
384
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
385 } elsif ($name eq 'n_c.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
386 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
387 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
388 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
389 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
390 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
391 9, 6, 'alias2', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
392 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
393
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
394 } elsif ($name eq 'n_cn.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
395 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
396 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
397 push @rdata, rd_addr($ttl, '127.0.0.202');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
398 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
399 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
400 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
401 8, 5, 'alias', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
402 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
403 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
404 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
405 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
406 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
407
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
408 } elsif ($name eq 'n_e.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
409 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
410 push @rdata, rd_addr($ttl, '127.0.0.201');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
411 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
412 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
413 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
414 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
415
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
416 } elsif ($name eq 'c_z.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
417 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
418 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
419 8, 5, 'alias', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
420 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
421
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
422 } elsif ($name eq 'c_n.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
423 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
424 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
425 8, 5, 'alias', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
426 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
427 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
428 push @rdata, rd_addr6($ttl, "fe80::1");
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
429 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
430
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
431 } elsif ($name eq 'c_c.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
432 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
433 9, 6, 'alias2', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
434
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
435 } elsif ($name eq 'c1_c2.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
436 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
437 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
438 9, 6, 'alias4', 0xc012);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
439 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
440 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
441 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
442 9, 6, 'alias6', 0xc012);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
443 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
444
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
445 } elsif ($name eq 'c_cn.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
446 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
447 9, 6, 'alias2', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
448
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
449 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
450 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
451 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
452 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
453 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
454 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
455
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
456 } elsif ($name eq 'cn_z.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
457 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
458 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
459 9, 6, 'alias2', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
460 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
461 4, split('\.', '127.0.0.201'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
462 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
463 4, split('\.', '127.0.0.202'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
464 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
465
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
466 } elsif ($name eq 'cn_n.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
467 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
468 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
469 9, 6, 'alias2', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
470 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
471 4, split('\.', '127.0.0.201'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
472 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
473 4, split('\.', '127.0.0.202'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
474 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
475 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
476 push @rdata, pack('n3N nn8', 0xc00c, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
477 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
478 push @rdata, pack('n3N nn8', 0xc00c, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
479 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
480 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
481
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
482 } elsif ($name eq 'cn_c.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
483 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
484 9, 6, 'alias2', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
485 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
486 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
487 4, split('\.', '127.0.0.201'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
488 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
489 4, split('\.', '127.0.0.202'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
490 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
491
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
492 } elsif ($name eq 'cn_cn.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
493 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
494 9, 6, 'alias2', 0xc012);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
495
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
496 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
497 push @rdata, pack("n3N nC4", 0xc02f, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
498 4, split('\.', '127.0.0.201'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
499 push @rdata, pack("n3N nC4", 0xc02f, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
500 4, split('\.', '127.0.0.202'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
501 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
502 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
503 push @rdata, pack('n3N nn8', 0xc02f, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
504 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
505 push @rdata, pack('n3N nn8', 0xc02f, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
506 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
507 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
508
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
509 } elsif ($name eq 'cn_e.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
510 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
511 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
512 9, 6, 'alias2', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
513 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
514 4, split('\.', '127.0.0.201'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
515 push @rdata, pack("n3N nC4", 0xc02e, A, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
516 4, split('\.', '127.0.0.202'));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
517 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
518 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
519 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
520 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
521
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
522
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
523 } elsif ($name eq 'e_z.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
524 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
525 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
526 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
527
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
528 } elsif ($name eq 'e_n.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
529 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
530 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
531 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
532 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
533 push @rdata, rd_addr6($ttl, 'fe80::1');
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
534 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
535
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
536 } elsif ($name eq 'e_c.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
537 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
538 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
539 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
540 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
541 push @rdata, pack("n3N nCa6n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
542 9, 6, 'alias2', 0xc010);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
543 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
544
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
545 } elsif ($name eq 'e_cn.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
546 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
547 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
548 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
549 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
550 push @rdata, pack("n3N nCa5n", 0xc00c, CNAME, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
551 8, 5, 'alias', 0xc011);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
552 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
553 16, expand_ip6("fe80::1"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
554 push @rdata, pack('n3N nn8', 0xc02e, AAAA, IN, $ttl,
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
555 16, expand_ip6("fe80::2"));
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
556 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
557
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
558 } elsif ($name eq 'e_e.example.net') {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
559 if ($type == A) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
560 $rcode = SERVFAIL;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
561 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
562 if ($type == AAAA) {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
563 $rcode = NXDOMAIN;
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
564 }
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
565 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
566
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
567 $len = @name;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
568 pack("n6 (w/a*)$len x n2", $id, $hdr | $rcode, 1, scalar @rdata,
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
569 0, 0, @name, $type, $class) . join('', @rdata);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
570 }
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
571
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
572 sub rd_addr {
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
573 my ($ttl, $addr) = @_;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
574
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
575 my $code = 'split(/\./, $addr)';
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
576
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
577 pack 'n3N nC4', 0xc00c, A, IN, $ttl, eval "scalar $code", eval($code);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
578 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
579
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
580 sub expand_ip6 {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
581 my ($addr) = @_;
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
582
360
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
583 substr ($addr, index($addr, "::"), 2) =
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
584 join "0", map { ":" } (0 .. 8 - (split /:/, $addr) + 1);
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
585 map { hex "0" x (4 - length $_) . "$_" } split /:/, $addr;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
586 }
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
587
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
588 sub rd_addr6 {
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
589 my ($ttl, $addr) = @_;
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
590
82db241184e0 Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 359
diff changeset
591 pack 'n3N nn8', 0xc00c, AAAA, IN, $ttl, 16, expand_ip6($addr);
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
592 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
593
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
594 sub dns_daemon {
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
595 my ($port, $t) = @_;
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
596
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
597 my ($data, $recv_data);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
598 my $socket = IO::Socket::INET->new(
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
599 LocalAddr => '127.0.0.1',
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
600 LocalPort => $port,
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
601 Proto => 'udp',
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
602 )
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
603 or die "Can't create listening socket: $!\n";
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
604
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
605 # track number of relevant queries
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
606
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
607 my %state = (
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
608 cnamecnt => 0,
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
609 twocnt => 0,
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
610 manycnt => 0,
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
611 );
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
612
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
613 # signal we are ready
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
614
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
615 open my $fh, '>', $t->testdir() . '/' . $port;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
616 close $fh;
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
617
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
618 while (1) {
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
619 $socket->recv($recv_data, 65536);
359
cdab739eb6ea Tests: resolver tests enabled to work with AAAA capable resolver.
Sergey Kandaurov <pluknet@nginx.com>
parents: 357
diff changeset
620 $data = reply_handler($recv_data, $port, \%state);
357
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
621 $socket->send($data);
e0c00e695cb5 Tests: removed Net::DNS dependency.
Sergey Kandaurov <pluknet@nginx.com>
parents: 356
diff changeset
622 }
352
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
623 }
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
624
145c37f27c5a Tests: added resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
625 ###############################################################################