X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-dns.git/blobdiff_plain/0e46ca6aa6400a7eda1980b1ff1a1b90ed2a2ca0..bc2b9c977be0dfaffbe83dc226a710453733a2b3:/invirt-dns?ds=sidebyside diff --git a/invirt-dns b/invirt-dns index b2a9ac6..4049257 100755 --- a/invirt-dns +++ b/invirt-dns @@ -92,11 +92,17 @@ class DatabaseAuthority(common.ResolverBase): results.append(dns.RRHeader(domain, dns.SOA, dns.IN, ttl, self.soa, auth=True)) else: # Request for a subdomain. - value = invirt.database.Machine.query().filter_by(name=host).first() - if value is None or not value.nics: - return defer.fail(failure.Failure(dns.AuthoritativeDomainError(name))) - ip = value.nics[0].ip - if ip is None: #Deactivated? + value = invirt.database.NIC.query.filter_by(hostname=host).first() + if value: + ip = value.ip + else: + value = invirt.database.Machine.query().filter_by(name=host).first() + if value: + ip = value.nics[0].ip + else: + return defer.fail(failure.Failure(dns.AuthoritativeDomainError(name))) + + if ip is None: return defer.fail(failure.Failure(dns.AuthoritativeDomainError(name))) if type in (dns.A, dns.ALL_RECORDS): @@ -155,9 +161,9 @@ class QuotingBindAuthority(authority.BindAuthority): for line in lines: in_quote = False split_line = [] - for m in string_pat.finditer(line): + for m in self.string_pat.finditer(line): [x] = [x for x in m.groups() if x is not None] - split_line.append(escape_pat.sub(r'\1', x)) + split_line.append(self.escape_pat.sub(r'\1', x)) L.append(split_line) return filter(None, L)