Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/aiohttp/__pycache__/resolver.cpython-35.opt-1.pyc



Z@sddlZddlZddlmZd
ZyddlZWnek
rXdZYnXdZGdddeZGd	ddeZ	ere	neZ
dS)N)AbstractResolverThreadedResolver
AsyncResolverDefaultResolverFc@sFeZdZdZdddZdejddZdd	ZdS)
rzsUse Executor for synchronous getaddrinfo() calls, which defaults to
    concurrent.futures.ThreadPoolExecutor.
    NcCs%|dkrtj}||_dS)N)asyncioget_event_loop_loop)selfloopr/resolver.py__init__szThreadedResolver.__init__rc	s|jj||dtjd|IdH}g}xY|D]Q\}}}}}|jd|d|dd|dd|d|d	tjiq6W|S)
Ntypefamilyhostnamehostrportrprotoflags)r	getaddrinfosocketSOCK_STREAMappendAI_NUMERICHOST)	r
rrrZinfoshosts_raddressrrr
resolves	 zThreadedResolver.resolvecsdS)Nr)r
rrr
close*szThreadedResolver.close)	__name__
__module____qualname____doc__rrAF_INETrrrrrr
rsc@s[eZdZdZdddZdejddZdejdd	Zd
dZ	dS)rz9Use the `aiodns` package to make asynchronous DNS lookupsNcOsv|dkrtj}tdkr0td||_tj|d|||_t|jdsr|j|_	dS)Nz Resolver requires aiodns libraryr
gethostbyname)
rraiodnsRuntimeErrorr	ZDNSResolver	_resolverhasattr_resolve_with_queryr)r
rargskwargsrrr
r1s	zAsyncResolver.__init__rc	sy|jj||IdH}Wnbtjjk
r}z<t|jdkr[|jdnd}t||WYdd}~XnXg}xE|jD]:}|j	d|d|d|d|ddd	t
jiqW|std|S)
NrzDNS lookup failedrrrrrrr)r(r%r&errorDNSErrorlenr+OSErrorZ	addressesrrr)	r
rrrrespexcmsgrrrrr
r?s("zAsyncResolver.resolvec
s|tjkrd}nd}y|jj||IdH}Wnbtjjk
r}z<t|jdkry|jdnd}t	||WYdd}~XnXg}xE|D]=}	|j
d|d|	jd|d|d	d
dtjiqW|st	d|S)NZAAAAArzDNS lookup failedrrrrrrr)
rAF_INET6r(Zqueryr&r-r.r/r+r0rrr)
r
rrrZqtyper1r2r3rZrrrrr
r*Rs$	("
z!AsyncResolver._resolve_with_querycs
|jjS)N)r(cancel)r
rrr
rkszAsyncResolver.close)
r r!r"r#rrr$rr*rrrrr
r.s
)rrr)rrabcr__all__r&ImportErrorZaiodns_defaultrrrrrrr
<module>s
A
Back to Directory File Manager