]>
Commit | Line | Data |
---|---|---|
33cf6ab4 RG |
1 | #!/usr/bin/env python |
2 | import dns | |
3 | ||
4 | from dnsdisttests import DNSDistTest | |
5 | ||
6 | class TestTCPOnly(DNSDistTest): | |
7 | ||
8 | _config_template = """ | |
9 | newServer{address="127.0.0.1:%s", tcpOnly=true} | |
10 | """ | |
11 | ||
12 | def testUDP(self): | |
13 | """ | |
14 | TCP Only: UDP query is sent via TCP | |
15 | """ | |
16 | name = 'udp.tcp-only.test.powerdns.com.' | |
17 | query = dns.message.make_query(name, 'A', 'IN') | |
18 | expectedResponse = dns.message.make_response(query) | |
19 | rrset = dns.rrset.from_text(name, | |
20 | 60, | |
21 | dns.rdataclass.IN, | |
22 | dns.rdatatype.A, | |
23 | '127.0.0.1') | |
24 | expectedResponse.answer.append(rrset) | |
25 | ||
26 | (receivedQuery, receivedResponse) = self.sendUDPQuery(query, expectedResponse) | |
645a1ca4 | 27 | receivedQuery.id = query.id |
33cf6ab4 RG |
28 | self.assertEqual(query, receivedQuery) |
29 | self.assertEqual(receivedResponse, expectedResponse) | |
30 | ||
31 | if 'UDP Responder' in self._responsesCounter: | |
32 | self.assertEqual(self._responsesCounter['UDP Responder'], 0) | |
33 | if 'TCP Responder' in self._responsesCounter: | |
34 | self.assertEqual(self._responsesCounter['TCP Responder'], 1) | |
35 | ||
36 | def testTCP(self): | |
37 | """ | |
38 | TCP Only: TCP query is sent via TCP | |
39 | """ | |
40 | name = 'tcp.tcp-only.test.powerdns.com.' | |
41 | query = dns.message.make_query(name, 'A', 'IN') | |
42 | expectedResponse = dns.message.make_response(query) | |
43 | rrset = dns.rrset.from_text(name, | |
44 | 60, | |
45 | dns.rdataclass.IN, | |
46 | dns.rdatatype.A, | |
47 | '127.0.0.1') | |
48 | expectedResponse.answer.append(rrset) | |
49 | ||
50 | (receivedQuery, receivedResponse) = self.sendTCPQuery(query, expectedResponse) | |
645a1ca4 | 51 | receivedQuery.id = query.id |
33cf6ab4 RG |
52 | self.assertEqual(query, receivedQuery) |
53 | self.assertEqual(receivedResponse, expectedResponse) | |
54 | if 'UDP Responder' in self._responsesCounter: | |
55 | self.assertEqual(self._responsesCounter['UDP Responder'], 0) | |
56 | if 'TCP Responder' in self._responsesCounter: | |
57 | self.assertEqual(self._responsesCounter['TCP Responder'], 1) |