summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Halley <halley@nominum.com>2012-04-07 22:16:05 +0100
committerBob Halley <halley@nominum.com>2012-04-07 22:16:05 +0100
commitee78c1c86171cad49dd3962d39e74f19c9b8ea20 (patch)
treeada99f28b05e4b3f6410e4cce7f279183d66d1da
parent2ab9852e14cda6d3b1f91a66c929b19c4eaf4b9e (diff)
downloaddnspython-ee78c1c86171cad49dd3962d39e74f19c9b8ea20.tar.gz
add check_origin parameter to dns.zone.from_xfr()
-rw-r--r--ChangeLog5
-rw-r--r--dns/zone.py8
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 46064a5..108cb40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-04-07 Bob Halley <halley@dnspython.org>
+ * dns/zone.py (from_xfr): dns.zone.from_xfr() now takes a
+ 'check_origin' parameter which defaults to True. If set to
+ False, then dnspython will not make origin checks on the zone.
+ Thanks to Carlos Perez for the report.
+
* dns/rdtypes/ANY/SSHFP.py (SSHFP.from_text): Allow whitespace in
the text string. Thanks to Jan Andres for the report and the
patch.
diff --git a/dns/zone.py b/dns/zone.py
index 72ae706..a4fa07b 100644
--- a/dns/zone.py
+++ b/dns/zone.py
@@ -796,7 +796,7 @@ def from_file(f, origin = None, rdclass = dns.rdataclass.IN,
f.close()
return z
-def from_xfr(xfr, zone_factory=Zone, relativize=True):
+def from_xfr(xfr, zone_factory=Zone, relativize=True, check_origin=True):
"""Convert the output of a zone transfer generator into a zone object.
@param xfr: The xfr generator
@@ -805,6 +805,9 @@ def from_xfr(xfr, zone_factory=Zone, relativize=True):
It is essential that the relativize setting matches the one specified
to dns.query.xfr().
@type relativize: bool
+ @param check_origin: should sanity checks of the origin node be done?
+ The default is True.
+ @type check_origin: bool
@raises dns.zone.NoSOA: No SOA RR was found at the zone origin
@raises dns.zone.NoNS: No NS RRset was found at the zone origin
@rtype: dns.zone.Zone object
@@ -830,5 +833,6 @@ def from_xfr(xfr, zone_factory=Zone, relativize=True):
for rd in rrset:
rd.choose_relativity(z.origin, relativize)
zrds.add(rd)
- z.check_origin()
+ if check_origin:
+ z.check_origin()
return z