More tidying up of some bugs.

This commit is contained in:
Discsearcher
2026-08-12 03:23:39 -04:00
parent 1abf82d8c3
commit cc4b74b42f
+14 -4
View File
@@ -9,6 +9,7 @@ from concurrent.futures import ThreadPoolExecutor
from dns import message
from dns import query
from dns import rdatatype
from dns import rcode
from dns import name
from dns import flags
from dns import exception
@@ -103,12 +104,21 @@ def perform_query(full_domain, ns, record_type, timeout):
if r.flags & flags.TC:
r = query.tcp(q, ns, timeout=timeout)
# Check response code
response_rcode = r.rcode()
if response_rcode != 0: # 0 = NOERROR
rcode_name = rcode.to_text(response_rcode)
return (full_domain, ns, f"RCODE: {rcode_name}")
results = []
answers = r.answer
if answers:
for rrset in answers:
for item in rrset:
results.append(str(item))
else:
# No answer records returned (NODATA)
return (full_domain, ns, "NO RECORDS")
return (full_domain, ns, results)
except (exception.Timeout, TimeoutError):
@@ -184,8 +194,8 @@ for full_domain in full_domains:
provider = nameserver_map.get(ns)
if (full_domain, ns) in results_map:
results = results_map[(full_domain, ns)]
# Handle error/timeout cases (strings starting with specific markers)
if isinstance(results, str) and (results == "TIMED OUT" or results.startswith("ERROR:")):
# Handle error/timeout/rcode cases (strings)
if isinstance(results, str):
output[full_domain]["records"][provider][ns] = results
else:
results = sorted(results)
@@ -196,8 +206,8 @@ for full_domain in full_domains:
for ns in all_nameservers:
if (full_domain, ns) in results_map:
results = results_map[(full_domain, ns)]
# Handle error/timeout cases (strings starting with specific markers)
if isinstance(results, str) and (results == "TIMED OUT" or results.startswith("ERROR:")):
# Handle error/timeout/rcode cases (strings)
if isinstance(results, str):
output[full_domain]["records"][ns] = results
else:
results = sorted(results)