File: //opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/resolver.cpython-35.opt-1.pyc
���Z� � @ s� d d l Z d d l Z d d l m Z d
Z y d d l Z Wn e k
rX d Z Yn Xd Z Gd d � d e � Z Gd d � d e � Z e r� e n e Z
d S)� N� )�AbstractResolver�ThreadedResolver�
AsyncResolver�DefaultResolverFc @ sF e Z d Z d Z d d d � Z d e j d d � Z d d � Z d S)
r zsUse Executor for synchronous getaddrinfo() calls, which defaults to
concurrent.futures.ThreadPoolExecutor.
Nc C s% | d k r t j � } | | _ d S)N)�asyncio�get_event_loop�_loop)�self�loop� r �/resolver.py�__init__ s zThreadedResolver.__init__r c � s� | j j | | d t j d | �Id H} g } xY | D]Q \ } } } } } | j d | d | d d | d d | d | d t j i � q6 W| S)
N�type�family�hostname�hostr �portr �proto�flags)r �getaddrinfo�socket�SOCK_STREAM�append�AI_NUMERICHOST) r
r r r Zinfos�hosts�_r �addressr r r
�resolve s zThreadedResolver.resolvec � s d S)Nr )r
r r r
�close* s zThreadedResolver.close) �__name__�
__module__�__qualname__�__doc__r r �AF_INETr r r r r r
r s c @ s[ e Z d Z d Z d d d � Z d e j d d � Z d e j d d � Z d
d � Z d S)r z9Use the `aiodns` package to make asynchronous DNS lookupsNc O sv | d k r t j � } t d k r0 t d � � | | _ t j | d | | � | _ t | j d � sr | j | _ d S)Nz Resolver requires aiodns libraryr �
gethostbyname)
r r �aiodns�RuntimeErrorr ZDNSResolver� _resolver�hasattr�_resolve_with_queryr )r
r �args�kwargsr r r
r 1 s zAsyncResolver.__init__r c � s� y | j j | | � Id H} Wnb t j j k
r� } z<