Confine errors from dnspython to dnsplug and use dkim errors, since dkim.__init__.py doesn't import dns and needs dkim errors (LP: #2018646)

This commit is contained in:
Scott Kitterman
2023-05-12 01:13:46 -04:00
parent c75fa31ad2
commit 8cf323d4ea
3 changed files with 9 additions and 2 deletions
+1 -1
View File
@@ -802,7 +802,7 @@ class DomainSigner(object):
except binascii.Error as e:
self.logger.error('KeyFormatError: {0}'.format(e))
return False
except dns.exception.Timeout as e:
except DnsTimeoutError as e:
self.logger.error('DnsTimeoutError: Domain: {0} Selector: {1} Error message: {2}'.format(
sig[b'd'], sig[b's'], e))
return False
+5
View File
@@ -27,6 +27,7 @@ __all__ = [
def get_txt_dnspython(name, timeout=5):
"""Return a TXT record associated with a DNS name."""
import dkim
try:
a = dns.resolver.query(name, dns.rdatatype.TXT,raise_on_no_answer=False, lifetime=timeout)
for r in a.response.answer:
@@ -34,6 +35,10 @@ def get_txt_dnspython(name, timeout=5):
return b"".join(list(r.items)[0].strings)
except dns.resolver.NXDOMAIN: pass
except dns.resolver.NoNameservers: pass
except dns.resolver.NoResolverConfiguration as e:
raise dkim.DnsTimeoutError('dns.resolver.NoResolverConfiguration: {0}'.format(e))
except dns.exception.Timeout as e:
raise dkim.DnsTimeoutError('dns.exception.Timeout: {0}'.format(e))
return None