def daemon(acl, addr='localhost'): """ Create an Rbldnsd instance with given ACL """ acl_zone = NamedTemporaryFile() acl_zone.writelines("%s\n" % line for line in acl) acl_zone.flush() dnsd = Rbldnsd(daemon_addr=addr) dnsd.add_dataset('acl', acl_zone) dnsd.add_dataset('generic', ZoneFile(['test TXT "Success"'])) return dnsd
def _have_ipv6(): # Check for IPv6 support if not getattr(socket, 'has_ipv6', False): return False # no python support for ipv6 elif Rbldnsd().no_ipv6: return False # rbldnsd compiled with -DNO_IPv6 try: socket.socket(socket.AF_INET6, socket.SOCK_DGRAM).close() except socket.error: return False # no kernel (or libc) support for ipv6? return True
def ip6trie(zone_data): """ Run rbldnsd with an ip6trie dataset """ dnsd = Rbldnsd() dnsd.add_dataset('ip6trie', ZoneFile(zone_data)) return dnsd
def __init__(self, prefixes, **kwargs): self.rbldnsd = Rbldnsd(**kwargs) zonedata = (self._zone_entry(*prefix) for prefix in prefixes) self.rbldnsd.add_dataset('ip6trie', ZoneFile(zonedata))