Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dnsviz/dnsviz.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasey Deccio <casey@deccio.net>2021-07-27 20:30:44 +0300
committerCasey Deccio <casey@deccio.net>2021-07-27 20:30:44 +0300
commitf882cdfa2413384bc9ebb57d093255aea1a234fa (patch)
treef0f67b73eb1675e96910ba23bbe759e41e3a703c
parent5a074eaadadbc14567ad8b101194e17b2a4ee08c (diff)
Allow scripts to run without /etc/resolv.conf if not needed
-rw-r--r--dnsviz/commands/probe.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/dnsviz/commands/probe.py b/dnsviz/commands/probe.py
index 55b6f6b..b2c058c 100644
--- a/dnsviz/commands/probe.py
+++ b/dnsviz/commands/probe.py
@@ -540,6 +540,8 @@ class NameServerMappingsForDomain(object):
self._handle_name_addr_mapping(name_addr)
def _handle_name_no_addr(self, name, port):
+ if self._resolver is None:
+ raise argparse.ArgumentTypeError('If addresses are not provided for names, then %s must have valid nameserver entries.\n' % RESOLV_CONF)
query_tuples = ((name, dns.rdatatype.A, dns.rdataclass.IN), (name, dns.rdatatype.AAAA, dns.rdataclass.IN))
answer_map = self._resolver.query_multiple_for_answer(*query_tuples)
found_answer = False
@@ -1236,6 +1238,9 @@ class ArgHelper:
def populate_recursive_servers(self):
if not self.args.authoritative_analysis and not self.args.recursive_servers:
+ if self._resolver is None:
+ raise argparse.ArgumentTypeError('If servers are not specified with the %s option, then %s must have valid nameserver entries.\n' % \
+ (self._arg_mapping['recursive_servers'], RESOLV_CONF))
if (WILDCARD_EXPLICIT_DELEGATION, dns.rdatatype.NS) not in self.explicit_delegations:
self.explicit_delegations[(WILDCARD_EXPLICIT_DELEGATION, dns.rdatatype.NS)] = dns.rrset.RRset(WILDCARD_EXPLICIT_DELEGATION, dns.rdataclass.IN, dns.rdatatype.NS)
for i, server in enumerate(self._resolver._servers):
@@ -1449,8 +1454,7 @@ def build_helper(logger, cmd, subcmd):
try:
resolver = Resolver.from_file(RESOLV_CONF, StandardRecursiveQueryCD, transport_manager=tm)
except ResolvConfError:
- sys.stderr.write('File %s not found or contains no nameserver entries.\n' % RESOLV_CONF)
- sys.exit(1)
+ resolver = None
arghelper = ArgHelper(resolver, logger)
arghelper.build_parser('%s %s' % (cmd, subcmd))