From 0d155acb4701cdb1106f6dad3bb78cd25937b079 Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Fri, 17 Mar 2023 11:46:08 +0100 Subject: [PATCH] Check for CNAME conflicts (named) --- src/hostinfo/named.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/hostinfo/named.py b/src/hostinfo/named.py index 89ad26c..49226e6 100755 --- a/src/hostinfo/named.py +++ b/src/hostinfo/named.py @@ -12,6 +12,9 @@ class NoNameserverException(Exception): class InvalidHostnameException(Exception): pass +class DuplicateCnameException(Exception): + pass + def equal_zone(c1, c2): for l1, l2 in zip(c1.split('\n'), c2.split('\n')): if l1 == l2: @@ -191,7 +194,12 @@ class DomainDict: pass if not ttl: ttl = '' + pass self.host[name].add((kind, value, ttl)) + if (len(self.host[name]) > 1 and + 'CNAME' in [ kind for kind,value,ttl in self.host[name] ]): + raise DuplicateCnameException('Conflicting CNAME records %s' % + self.host[name]) pass def value(self, key=None, subdomains=[]): -- GitLab