diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-07-17 04:13:23 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-07-17 04:13:23 +0100 |
| commit | 0833b95fa5f3c8e1b944d4811025ece630aa6a78 (patch) | |
| tree | 58ebb233b22d57d359f34d5f813d8eac5c9bb098 /bin | |
| parent | 736f6a38423a91e92acd380faa243e4c7742ead1 (diff) | |
| download | dns-0833b95fa5f3c8e1b944d4811025ece630aa6a78.tar.gz dns-0833b95fa5f3c8e1b944d4811025ece630aa6a78.tar.bz2 | |
get_catalog: don't include dn42 zones
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/get_catalog | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/bin/get_catalog b/bin/get_catalog index 39c8a37..4c069ac 100755 --- a/bin/get_catalog +++ b/bin/get_catalog @@ -30,9 +30,22 @@ def axfr(zonename, hostname): raise (last_exc) def print_catalog(zone): + def origin(node): + try: + return [ + ''.join(s.decode('utf-8') for s in rdata.strings) + for rdata in + zone.find_node(f"origin.ext.{node}") + .find_rdataset(dns.rdataclass.IN, + dns.rdatatype.TXT) + ] + except KeyError: + return [] + nodes = [node for (name, node) in zone.nodes.items() - if len(name) == 2 and name[1] == b"zones"] + if len(name) == 2 and name[1] == b"zones" + and not "dn42" in origin(name)] ptrs = [str(ptr.target).rstrip('.') for node in nodes |
