]>
Commit | Line | Data |
---|---|---|
b48222de O |
1 | import dns |
2 | import os | |
3 | import subprocess | |
4 | from recursortests import RecursorTest | |
5 | ||
6 | class testSimpleForwardOverDoT(RecursorTest): | |
7 | """ | |
b4ae1398 | 8 | This is forwarding to a DoT server in a very basic way and is dependent on Quad9 working |
b48222de O |
9 | """ |
10 | ||
11 | _confdir = 'SimpleForwardOverDoT' | |
12 | _config_template = """ | |
13 | dnssec=validate | |
14 | forward-zones-recurse=.=9.9.9.9:853 | |
7d3d2f4f | 15 | devonly-regression-test-mode |
b48222de O |
16 | """ |
17 | ||
98194c31 O |
18 | @classmethod |
19 | def setUpClass(cls): | |
20 | ||
21 | # we don't need all the auth stuff | |
22 | cls.setUpSockets() | |
23 | ||
24 | confdir = os.path.join('configs', cls._confdir) | |
25 | cls.createConfigDir(confdir) | |
26 | ||
27 | cls.generateRecursorConfig(confdir) | |
28 | cls.startRecursor(confdir, cls._recursorPort) | |
29 | ||
b48222de O |
30 | def testA(self): |
31 | expected = dns.rrset.from_text('dns.google.', 0, dns.rdataclass.IN, 'A', '8.8.8.8', '8.8.4.4') | |
32 | query = dns.message.make_query('dns.google', 'A', want_dnssec=True) | |
33 | query.flags |= dns.flags.AD | |
34 | ||
35 | res = self.sendUDPQuery(query) | |
36 | ||
37 | self.assertMessageIsAuthenticated(res) | |
38 | self.assertRRsetInAnswer(res, expected) | |
39 | self.assertMatchingRRSIGInAnswer(res, expected) | |
40 | ||
41 | rec_controlCmd = [os.environ['RECCONTROL'], | |
42 | '--config-dir=%s' % 'configs/' + self._confdir, | |
43 | 'get dot-outqueries'] | |
44 | try: | |
45 | ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT) | |
46 | self.assertNotEqual(ret, b'UNKNOWN\n') | |
47 | self.assertNotEqual(ret, b'0\n') | |
48 | ||
49 | except subprocess.CalledProcessError as e: | |
50 | print(e.output) | |
51 | raise | |
52 | ||
53 | rec_controlCmd = [os.environ['RECCONTROL'], | |
54 | '--config-dir=%s' % 'configs/' + self._confdir, | |
55 | 'get tcp-outqueries'] | |
56 | try: | |
57 | ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT) | |
58 | self.assertEqual(ret, b'0\n') | |
59 | ||
60 | except subprocess.CalledProcessError as e: | |
61 | print(e.output) | |
62 | raise | |
63 |