1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2026-04-03 21:47:22 +02:00

add dns exception handling

This commit is contained in:
KiekerJan
2022-04-17 22:56:30 +02:00
parent 9b252e0209
commit d35b068a73
3 changed files with 24 additions and 10 deletions

View File

@@ -802,6 +802,7 @@ def query_dns(qname, rtype, nxdomain='[Not Set]', at=None, as_list=False):
# Set a timeout so that a non-responsive server doesn't hold us back.
resolver.timeout = 3
reaolver.lifetime = 3
# Do the query.
try:
@@ -809,20 +810,21 @@ def query_dns(qname, rtype, nxdomain='[Not Set]', at=None, as_list=False):
except (dns.resolver.NoNameservers, dns.resolver.NXDOMAIN, dns.resolver.NoAnswer):
# Host did not have an answer for this query; not sure what the
# difference is between the two exceptions.
logging.info("No result for dns lookup %s, %s", qname, rtype)
logging.debug("No result for dns lookup %s, %s", qname, rtype)
return nxdomain
except dns.exception.Timeout:
logging.info("Timeout on dns lookup %s, %s. Retrying", qname, rtype)
logging.debug("Timeout on dns lookup %s, %s. Retrying", qname, rtype)
resolver.timeout = 5
resolver.lifetime = 5
try:
response = resolver.resolve(qname, rtype, search=True)
except (dns.resolver.NoNameservers, dns.resolver.NXDOMAIN, dns.resolver.NoAnswer):
# Host did not have an answer for this query; not sure what the
# difference is between the two exceptions.
logging.info("No result for dns lookup %s, %s (2)", qname, rtype)
logging.debug("No result for dns lookup %s, %s (2)", qname, rtype)
return nxdomain
except dns.exception.Timeout:
logging.info("Timeout on dns lookup %s, %s.", qname, rtype)
logging.debug("Timeout on dns lookup %s, %s.", qname, rtype)
return "[timeout]"
# Normalize IP addresses. IP address --- especially IPv6 addresses --- can