]> git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests/tkey.py
LMDB: Initialize d_cursor in the base ctor
[thirdparty/pdns.git] / regression-tests / tkey.py
1 #!/usr/bin/env python
2
3 import socket
4 import select
5 import sys
6
7 def ensure(data, offset, value):
8 if (data[offset:offset+len(value)] != value):
9 raise Exception("Mismatch at packet offset {0!s} {1!r} != {2!r}".format(offset,data[offset:offset+len(value)], value))
10
11 def main(host, port):
12 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
13
14 msg = b"\xaa\x77\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x04tkey\x04unit\x04test\x00\x00\xf9\x00\xff\x04tkey\x04unit\x04test\x00\x00\xf9\x00\xff\x00\x00\x00\x00\x00\x22\x03bad\04algo\x00\x00\x00\x30\x39\x00\x00\x30\x39\x00\x03\x00\x00\x00\x04test\x00\x00"
15
16 s.sendto(msg, (host, port))
17 s.settimeout(2)
18 data, addr = s.recvfrom(512)
19
20 # make sure the data validates
21
22 # transaction id
23 ensure(data, 0, msg[0:2])
24
25 # has one question, one answer
26 ensure(data, 4, b"\x00\x01")
27 ensure(data, 6, b"\x00\x01")
28
29 # question is tkey.unit.test ANY TKEY?
30 ensure(data, 12, b"\x04tkey\x04unit\x04test\x00\x00\xf9\x00\xff")
31 # answer is called tkey.unit.test ANY TKEY (compressed it seems)
32 ensure(data, 32, b"\xc0\x0c\x00\xf9\x00\xff")
33
34 # and then ensure we get an BADALGO or error, at least.
35 if (data[64:66] == "\x00\x00"):
36 raise Exception("At packet offset {0!s}: expected {2!r}, got {1!r}".format(offset,data[offset:offset+len(value)], value))
37
38 print("Got expected TKEY response\n")
39
40 if (len(sys.argv) < 3):
41 print("Usage: tkey.py host port")
42 sys.exit(1)
43
44 if __name__ == '__main__':
45 main(sys.argv[1], int(sys.argv[2]))