]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
add example of receiving notify messages
authorBob Halley <halley@dnspython.org>
Sun, 18 Dec 2016 19:22:18 +0000 (11:22 -0800)
committerBob Halley <halley@dnspython.org>
Sun, 18 Dec 2016 19:22:18 +0000 (11:22 -0800)
examples/receive_notify.py [new file with mode: 0644]

diff --git a/examples/receive_notify.py b/examples/receive_notify.py
new file mode 100644 (file)
index 0000000..76976f7
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+import socket
+
+import dns.flags
+import dns.message
+import dns.rdataclass
+import dns.rdatatype
+
+address = '127.0.0.1'
+port = 53535
+
+s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+s.bind((address, port))
+while True:
+    (wire, address) = s.recvfrom(512)
+    notify = dns.message.from_wire(wire)
+    soa = notify.find_rrset(notify.answer, notify.question[0].name,
+                            dns.rdataclass.IN, dns.rdatatype.SOA)
+
+    # Do something with the SOA RR here
+    print('The serial number for', soa.name, 'is', soa[0].serial)
+
+    response = dns.message.make_response(notify)
+    response.flags |= dns.flags.AA
+    wire = response.to_wire(response)
+    s.sendto(wire, address)