summaryrefslogtreecommitdiffstats
path: root/ipapython
diff options
context:
space:
mode:
authorMartin Basti <mbasti@redhat.com>2014-11-19 14:51:20 +0100
committerJan Cholasta <jcholast@redhat.com>2014-11-20 14:41:36 +0000
commitc80a59eff479dbdc26eaaa18f18256f1f7471880 (patch)
tree501fe29e77f60bc1a4493f57a9b2e5c548fa609f /ipapython
parentbff97e8b2e8d80e75e989b661e873c8e72cd7429 (diff)
downloadfreeipa-c80a59eff479dbdc26eaaa18f18256f1f7471880.tar.gz
freeipa-c80a59eff479dbdc26eaaa18f18256f1f7471880.tar.xz
freeipa-c80a59eff479dbdc26eaaa18f18256f1f7471880.zip
Raise right exception if domain name is not valid
Because of dnspython implementation, in some cases UnicodeError is raised instead of DNS SyntaxError Ticket: https://fedorahosted.org/freeipa/ticket/4734 Reviewed-By: Jan Cholasta <jcholast@redhat.com>
Diffstat (limited to 'ipapython')
-rw-r--r--ipapython/dnsutil.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/ipapython/dnsutil.py b/ipapython/dnsutil.py
index d7841fe25..f08cddad9 100644
--- a/ipapython/dnsutil.py
+++ b/ipapython/dnsutil.py
@@ -26,15 +26,16 @@ class DNSName(dns.name.Name):
labels = None # make pylint happy
def __init__(self, labels, origin=None):
- if isinstance(labels, str):
- #pylint: disable=E1101
- labels = dns.name.from_text(labels, origin).labels
- elif isinstance(labels, unicode):
- #pylint: disable=E1101
- labels = dns.name.from_unicode(labels, origin).labels
- elif isinstance(labels, dns.name.Name):
- labels = labels.labels
try:
+ if isinstance(labels, str):
+ #pylint: disable=E1101
+ labels = dns.name.from_text(labels, origin).labels
+ elif isinstance(labels, unicode):
+ #pylint: disable=E1101
+ labels = dns.name.from_unicode(labels, origin).labels
+ elif isinstance(labels, dns.name.Name):
+ labels = labels.labels
+
super(DNSName, self).__init__(labels)
except UnicodeError, e:
# dnspython bug, an invalid domain name returns the UnicodeError