]>
Commit | Line | Data |
---|---|---|
0d2a5169 PL |
1 | import dns |
2 | import os | |
3 | from recursortests import RecursorTest | |
4 | ||
5 | class testServerNames(RecursorTest): | |
6 | """ | |
7 | This tests all kinds naming things | |
8 | """ | |
9 | ||
10 | _confdir = 'ServerNames' | |
11 | _servername = 'awesome-pdns1.example.com' | |
12 | _versionbind = 'Awesome!' | |
13 | _versionbind_expected = dns.rrset.from_text('version.bind.', 86400, 'CH', 'TXT', _versionbind) | |
14 | _idserver_expected = dns.rrset.from_text('id.server.', 86400, 'CH', 'TXT', _servername) | |
15 | ||
16 | _config_template = """ | |
17 | server-id=%s | |
18 | version-string=%s | |
19 | """ % (_servername, _versionbind) | |
20 | ||
21 | ||
22 | def testVersionBindUDP(self): | |
23 | """ | |
24 | Send a version.bind CH TXT query over UDP and look for the version string | |
25 | """ | |
26 | query = dns.message.make_query('version.bind', 'TXT', 'CH', use_edns=False) | |
27 | response = self.sendUDPQuery(query) | |
28 | ||
29 | self.assertEqual(len(response.answer), 1) | |
30 | self.assertRRsetInAnswer(response, self._versionbind_expected) | |
31 | ||
32 | def testVersionBindTCP(self): | |
33 | """ | |
34 | Send a version.bind CH TXT query over TCP and look for the version string | |
35 | """ | |
36 | query = dns.message.make_query('version.bind', 'TXT', 'CH', use_edns=False) | |
37 | response = self.sendTCPQuery(query) | |
38 | ||
39 | self.assertEqual(len(response.answer), 1) | |
40 | self.assertRRsetInAnswer(response, self._versionbind_expected) | |
41 | ||
42 | def testVersionBindUDPEDNS(self): | |
43 | """ | |
44 | Send a version.bind CH TXT query over UDP (with EDNS) and look for the version string | |
45 | """ | |
46 | query = dns.message.make_query('version.bind', 'TXT', 'CH', use_edns=True) | |
47 | response = self.sendUDPQuery(query) | |
48 | ||
49 | self.assertEqual(len(response.answer), 1) | |
50 | self.assertRRsetInAnswer(response, self._versionbind_expected) | |
51 | ||
52 | def testVersionBindTCPEDNS(self): | |
53 | """ | |
54 | Send a version.bind CH TXT query over TCP (with EDNS) and look for the version string | |
55 | """ | |
56 | query = dns.message.make_query('version.bind', 'TXT', 'CH', use_edns=True) | |
57 | response = self.sendTCPQuery(query) | |
58 | ||
59 | self.assertEqual(len(response.answer), 1) | |
60 | self.assertRRsetInAnswer(response, self._versionbind_expected) | |
61 | ||
62 | def testIdServerUDP(self): | |
63 | """ | |
64 | Send a id.server CH TXT query over UDP and look for the server id | |
65 | """ | |
66 | query = dns.message.make_query('id.server', 'TXT', 'CH', use_edns=False) | |
67 | response = self.sendUDPQuery(query) | |
68 | ||
69 | self.assertEqual(len(response.answer), 1) | |
70 | self.assertRRsetInAnswer(response, self._idserver_expected) | |
71 | ||
72 | def testIdServerTCP(self): | |
73 | """ | |
74 | Send a id.server CH TXT query over TCP and look for the server id | |
75 | """ | |
76 | query = dns.message.make_query('id.server', 'TXT', 'CH', use_edns=False) | |
77 | response = self.sendTCPQuery(query) | |
78 | ||
79 | self.assertEqual(len(response.answer), 1) | |
80 | self.assertRRsetInAnswer(response, self._idserver_expected) | |
81 | ||
82 | def testIdServerUDPEDNS(self): | |
83 | """ | |
84 | Send a id.server CH TXT query over UDP (with EDNS) and look for the server id | |
85 | """ | |
86 | query = dns.message.make_query('id.server', 'TXT', 'CH', use_edns=True) | |
87 | response = self.sendUDPQuery(query) | |
88 | ||
89 | self.assertEqual(len(response.answer), 1) | |
90 | self.assertRRsetInAnswer(response, self._idserver_expected) | |
91 | ||
92 | def testIdServerTCPEDNS(self): | |
93 | """ | |
94 | Send a id.server CH TXT query over TCP (with EDNS) and look for the server id | |
95 | """ | |
96 | query = dns.message.make_query('id.server', 'TXT', 'CH', use_edns=True) | |
97 | response = self.sendTCPQuery(query) | |
98 | ||
99 | self.assertEqual(len(response.answer), 1) | |
100 | self.assertRRsetInAnswer(response, self._idserver_expected) | |
101 | ||
102 | def testNSIDUDP(self): | |
103 | """ | |
104 | Send a .|NS query with NSID option | |
105 | """ | |
106 | opts = [dns.edns.GenericOption(dns.edns.NSID, b'')] | |
107 | query = dns.message.make_query('.', 'NS', 'IN', use_edns=True, options=opts) | |
108 | response = self.sendUDPQuery(query) | |
109 | ||
110 | self.assertEqual(len(response.options), 1) | |
3d144e24 | 111 | self.assertEqual(response.options[0].data, self._servername.encode('ascii')) |
0d2a5169 PL |
112 | |
113 | def testNSIDTCP(self): | |
114 | """ | |
115 | Send a .|NS query with NSID option | |
116 | """ | |
117 | opts = [dns.edns.GenericOption(dns.edns.NSID, b'')] | |
118 | query = dns.message.make_query('.', 'NS', 'IN', use_edns=True, options=opts) | |
119 | response = self.sendTCPQuery(query) | |
120 | ||
121 | self.assertEqual(len(response.options), 1) | |
3d144e24 | 122 | self.assertEqual(response.options[0].data, self._servername.encode('ascii')) |