diff options
author | Rob Austein <sra@hactrn.net> | 2010-06-05 02:40:52 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-06-05 02:40:52 +0000 |
commit | 38cb95480e1f9a6b389d8f495ae8445a8d6e2a53 (patch) | |
tree | 0728a258cb2af746e29d02ebe1ab538bb285db6b | |
parent | 39e00194d803f202b110cfe71d4414cbdbc6c4ba (diff) |
Cleanup
svn path=/rpkid/rpki/adns.py; revision=3271
-rw-r--r-- | rpkid/rpki/adns.py | 54 |
1 files changed, 21 insertions, 33 deletions
diff --git a/rpkid/rpki/adns.py b/rpkid/rpki/adns.py index 273abf73..9f4f9ada 100644 --- a/rpkid/rpki/adns.py +++ b/rpkid/rpki/adns.py @@ -46,13 +46,26 @@ resolver = dns.resolver.Resolver() if resolver.cache is None: resolver.cache = dns.resolver.Cache() -## @var nscache -# Nameserver map, maps values from resolver.nameservers to (af, -# address) pairs. The latter turns out to be a more useful form for -# us to use internally, because it simplifies the checks we need to -# make upon packet receiption. - -nscache = {} +## @var nameservers +# Nameservers from resolver.nameservers converted to (af, address) +# pairs. The latter turns out to be a more useful form for us to use +# internally, because it simplifies the checks we need to make upon +# packet receiption. + +nameservers = [] + +for ns in resolver.nameservers: + try: + nameservers.append((dns.inet.AF_INET, dns.ipv4.inet_aton(ns))) + continue + except: + pass + try: + nameservers.append((dns.inet.AF_INET6, dns.ipv6.inet_aton(ns))) + continue + except: + pass + rpki.log.error("Couldn't parse nameserver address %r" % ns) class dispatcher(asyncore.dispatcher): """ @@ -137,34 +150,9 @@ class query(object): self.request.use_edns(resolver.edns, resolver.ednsflags, resolver.payload) self.response = None self.backoff = 0.10 - self.clone_nameservers() + self.nameservers = nameservers[:] self.loop1() - def clone_nameservers(self): - """ - Parse resolver.nameservers into (address family, address) pairs, - cache result to speed up future queries, and construct nameserver - list for this query. - """ - for ns in resolver.nameservers: - if ns not in nscache: - try: - addr = dns.ipv4.inet_aton(ns) - except: - pass - else: - nscache[ns] = (dns.inet.AF_INET, addr) - continue - try: - addr = dns.ipv6.inet_aton(ns) - except: - pass - else: - nscache[ns] = (dns.inet.AF_INET6, addr) - continue - raise ValueError - self.nameservers = [nscache[ns] for ns in resolver.nameservers] - def loop1(self): """ Outer loop. If we haven't got a response yet and still have |