Mercurial > hg > nginx-tests
annotate http_resolver_aaaa.t @ 540:481d705b8610
Tests: SSL support in mail backends.
Socket is now embedded into every mail module.
Socket methods are wrapped where appropriate.
The new "SSL" extra flag specifies to accept connection over SSL.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 03 Apr 2015 00:11:38 +0300 |
parents | 847ea345becb |
children | 78b4e12e6efe |
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; |
360
82db241184e0
Tests: added AAAA specific resolver tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
359
diff
changeset
|
50 proxy_connect_timeout 50ms; |
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 ############################################################################### |