def dns_cache_install(): try: from dns_cache.resolver import ExceptionCachingResolver from dns import resolver as dnspython_resolver_module if not dnspython_resolver_module.default_resolver: dnspython_resolver_module.default_resolver = ExceptionCachingResolver( ) del dnspython_resolver_module except ImportError: pass try: from dns.resolver import LRUCache, Resolver, override_system_resolver, _resolver, default_resolver except ImportError: return if default_resolver: if not default_resolver.cache: default_resolver.cache = LRUCache() resolver = default_resolver elif _resolver and _resolver.cache: resolver = _resolver else: resolver = Resolver() resolver.cache = LRUCache() override_system_resolver(resolver)
def dns_cache_install(): try: from dns.resolver import LRUCache, Resolver, override_system_resolver, _resolver, default_resolver except ImportError: return if default_resolver and default_resolver.cache: resolver = default_resolver elif _resolver and _resolver.cache: resolver = _resolver else: resolver = Resolver() resolver.cache = LRUCache() override_system_resolver(resolver)
def dns_query_function(server=None): ''' Return a dns query function using the given DNS server address, or getaddrinfo if none is given. ''' if server: from dns.resolver import Resolver, Cache resolver = Resolver(configure=False) resolver.cache = Cache() resolver.nameservers.append(server) def dns_query(host): for rr in resolver.query(host): return rr.address else: import socket def dns_query(host): for family, socktype, proto, canonname, sockaddr in \ socket.getaddrinfo(host, 0): return sockaddr[0] return dns_query
first page gets the special key `subject`) """ r = {} with open(fpath, 'rb') as f: pages = list(split_and_escape(f.read().decode('utf8'))) for i, page in enumerate(pages, 1): tmpl = '\n' * page.offset + page.content content_type, renderer = parse_specline(page.header) key = 'subject' if i == 1 else content_type env = jinja_env_html if content_type == 'text/html' else jinja_env r[key] = SimplateLoader(fpath, tmpl).load(env, fpath) return r DNS = Resolver() DNS.cache = Cache() def normalize_email_address(email): """Normalize an email address. Returns: str: the normalized email address Raises: BadEmailAddress: if the address appears to be invalid BadEmailDomain: if the domain name is invalid """ # Remove any surrounding whitespace email = email.strip()
from dns.resolver import Resolver, Cache from dns.asyncresolver import Resolver as AsyncResolver from dns.exception import DNSException except ImportError: raise ImportError( "the module psycopg._dns requires the package 'dnspython' installed" ) from . import pq from . import errors as e if TYPE_CHECKING: from dns.rdtypes.IN.SRV import SRV resolver = Resolver() resolver.cache = Cache() async_resolver = AsyncResolver() async_resolver.cache = Cache() async def resolve_hostaddr_async(params: Dict[str, Any]) -> Dict[str, Any]: """ Perform async DNS lookup of the hosts and return a new params dict. :param params: The input parameters, for instance as returned by `~psycopg.conninfo.conninfo_to_dict()`. If a ``host`` param is present but not ``hostname``, resolve the host addresses dynamically.