Ticket: https://fedorahosted.org/freeipa/ticket/4734 Patch attached.
-- Martin Basti
From 0af7b841365a9d37d4ea67c396ac53ece6982429 Mon Sep 17 00:00:00 2001 From: Martin Basti <mba...@redhat.com> Date: Wed, 19 Nov 2014 14:51:20 +0100 Subject: [PATCH] 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 --- ipapython/dnsutil.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ipapython/dnsutil.py b/ipapython/dnsutil.py index d7841fe2548dd100d51e60ea11bc6e468f3475cf..f08cddad959658a11623a31cb591655f1a5fdabf 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 -- 1.8.3.1
_______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel