From 26730cf8a9bda042ee8ce32790948da1da6fde03 Mon Sep 17 00:00:00 2001 From: Lexi Winter Date: Sat, 12 Jul 2025 12:44:52 +0100 Subject: bin/get_catalog: clean up a bit --- bin/get_catalog | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/bin/get_catalog b/bin/get_catalog index 772d5b4..d1e7aa5 100755 --- a/bin/get_catalog +++ b/bin/get_catalog @@ -23,19 +23,24 @@ def axfr(zone, hostname): return dns.zone.from_xfr(dns.query.xfr(addr, zone)) except Exception as e: last_exc = e - raise (Exception(str(last_exc))) + raise (last_exc) def print_catalog(zone): - for name, node in zone.nodes.items(): - for rdata in node.rdatasets: - if rdata.rdtype == dns.rdatatype.PTR: - for ptr in rdata: - print(str(ptr.target).rstrip('.')) + nodes = [node + for (name, node) in zone.nodes.items() + if len(name) == 2 and name[1] == b"zones"] + ptrs = [str(ptr.target).rstrip('.') + for node in nodes + for rdataset in node.rdatasets + if rdataset.rdtype == dns.rdatatype.PTR + for ptr in rdataset] + + print("\n".join(ptrs)) def main(): if len(sys.argv) != 3: - print(f"Usage: {sys.argv[0]} ") + print(f"Usage: {sys.argv[0]} ", file=sys.stderr) return 1 zone_name = sys.argv[1] @@ -45,7 +50,7 @@ def main(): zone = axfr(zone_name, server) print_catalog(zone) except Exception as e: - print(f"Zone transfer failed: {e}") + print(f"Failed to load catalog: {e}", file=sys.stderr) return 1 return 0 -- cgit v1.2.3