]>
Commit | Line | Data |
---|---|---|
4f0b10a9 CHB |
1 | #!/usr/bin/env python |
2 | import dns | |
3 | import clientsubnetoption | |
4 | ||
5 | from dnsdisttests import DNSDistTest | |
6 | from dnsdisttests import pickAvailablePort | |
7 | ||
8 | import doh3client | |
9 | ||
10 | class TestDOH3(DNSDistTest): | |
11 | _serverKey = 'server.key' | |
12 | _serverCert = 'server.chain' | |
13 | _serverName = 'tls.tests.dnsdist.org' | |
14 | _caCert = 'ca.pem' | |
15 | _doqServerPort = pickAvailablePort() | |
16 | _dohBaseURL = ("https://%s:%d/" % (_serverName, _doqServerPort)) | |
17 | _config_template = """ | |
18 | newServer{address="127.0.0.1:%d"} | |
19 | ||
20 | addAction("drop.doq.tests.powerdns.com.", DropAction()) | |
21 | addAction("refused.doq.tests.powerdns.com.", RCodeAction(DNSRCode.REFUSED)) | |
22 | addAction("spoof.doq.tests.powerdns.com.", SpoofAction("1.2.3.4")) | |
23 | addAction("no-backend.doq.tests.powerdns.com.", PoolAction('this-pool-has-no-backend')) | |
24 | ||
25 | addDOH3Local("127.0.0.1:%d", "%s", "%s") | |
26 | """ | |
27 | _config_params = ['_testServerPort', '_doqServerPort','_serverCert', '_serverKey'] | |
28 | _verboseMode = True | |
29 | ||
30 | def testDOH3Simple(self): | |
31 | """ | |
32 | DOH3: Simple query | |
33 | """ | |
34 | name = 'simple.doq.tests.powerdns.com.' | |
35 | query = dns.message.make_query(name, 'A', 'IN', use_edns=False) | |
36 | query.id = 0 | |
37 | expectedQuery = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096) | |
38 | expectedQuery.id = 0 | |
39 | response = dns.message.make_response(query) | |
40 | rrset = dns.rrset.from_text(name, | |
41 | 3600, | |
42 | dns.rdataclass.IN, | |
43 | dns.rdatatype.A, | |
44 | '127.0.0.1') | |
45 | response.answer.append(rrset) | |
46 | (receivedQuery, receivedResponse) = self.sendDOH3Query(self._doqServerPort, self._dohBaseURL, query, response=response, caFile=self._caCert, serverName=self._serverName) | |
47 | self.assertTrue(receivedQuery) | |
48 | self.assertTrue(receivedResponse) | |
49 | receivedQuery.id = expectedQuery.id | |
50 | self.assertEqual(expectedQuery, receivedQuery) |