func-test: add get soa serial function

This commit is contained in:
Daniel Salzman 2013-10-08 15:44:22 +02:00
parent 637bb367df
commit 04dc3dca26
2 changed files with 12 additions and 2 deletions

View file

@ -1,7 +1,7 @@
$ORIGIN example.com.
$TTL 3600
@ SOA dns1 hostmaster 2010111213 10800 3600 1209600 7200
@ SOA dns1 hostmaster 2010111201 10800 3600 1209600 7200
NS dns1
NS dns2
MX 10 mail

View file

@ -605,7 +605,7 @@ class DnsServer(object):
elif rtype.upper() == "IXFR":
resp = dns.query.xfr(self.addr, rname, rtype, rclass, \
port=self.port, lifetime=timeout, \
use_udp=udp, serial=serial, \
use_udp=udp, serial=int(serial), \
**key_params)
else:
query = dns.message.make_query(rname, rtype, rclass)
@ -665,6 +665,16 @@ class DnsServer(object):
return Update(self, dns.update.Update(zname, **key_params))
def soa_serial(self, zone):
'''Returns zone SOA serial'''
if len(zone) != 1:
raise Exception("One zone required.")
zname = list(zone.keys())[0]
resp = self.dig(zname, "SOA")
return str((resp.resp.answer[0]).to_rdataset()).split()[5]
class Bind(DnsServer):
def __init__(self):