Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/resolver.cpython-38.pyc

U

'7`@sddlZddlZddlmZmZmZmZddlmZddl	m
Z
dZzddlZWne
k
rhdZYnXdZGdd	d	eZGd
ddeZereneZdS)N)AnyDictListOptional)AbstractResolver)get_running_loop)ThreadedResolver
AsyncResolverDefaultResolverFc@s^eZdZdZd
eejddddZdej	fe
eeee
e
efddd	Zdd
ddZdS)r	zsUse Executor for synchronous getaddrinfo() calls, which defaults to
    concurrent.futures.ThreadPoolExecutor.
    N)loopreturncCst||_dSN)r_loop)selfrrC/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/resolver.py__init__szThreadedResolver.__init__r)hostnameportfamilyr
c
s|jj||tj|tjdIdH}g}|D]r\}}}}}|tjkrj|drjt|tjtjB\}	}
t	|
}n|dd\}	}|
||	|||tjtjBdq(|S)N)typerflagsrhostrrprotor)
rZgetaddrinfosocketZSOCK_STREAMZ
AI_ADDRCONFIGAF_INET6ZgetnameinfoZNI_NUMERICHOSTZNI_NUMERICSERVintappendAI_NUMERICHOSTAI_NUMERICSERV)rrrrZinfoshosts_raddressrZ_portrrrresolves4


zThreadedResolver.resolver
csdSrrrrrrclose@szThreadedResolver.close)N)__name__
__module____qualname____doc__rasyncioAbstractEventLooprrAF_INETstrr rrrr'r*rrrrr	s$r	c@seZdZdZdeejeeddddZde	j
feeee
eeefddd	Zde	j
feeee
eeefdd
dZddd
dZdS)r
z9Use the `aiodns` package to make asynchronous DNS lookupsN)rargskwargsr
cOsHtdkrtdt||_tj|d|i||_t|jdsD|j|_dS)Nz Resolver requires aiodns libraryr
gethostbyname)	aiodnsRuntimeErrorrrZDNSResolver	_resolverhasattr_resolve_with_queryr')rrr3r4rrrrGs
zAsyncResolver.__init__r)rrrr
c	
sz|j||IdH}WnLtjjk
rd}z*t|jdkrF|jdnd}t||W5d}~XYnXg}|jD]$}|	||||dt
jt
jBdqp|std|S)NrDNS lookup failedrr)
r8r5r6errorDNSErrorlenr3OSErrorZ	addressesr!rr"r#)	rrrrrespexcmsgr$r&rrrr'Ws&

zAsyncResolver.resolvec

s|tjkrd}nd}z|j||IdH}WnLtjjk
rx}z*t|jdkrZ|jdnd}t	||W5d}~XYnXg}|D] }	|
||	j||dtjdq|st	d|S)NZAAAAArr;rr)
rrr8Zqueryr6r<r=r>r3r?r!rr")
rrrrZqtyper@rArBr$Zrrrrrr:qs,
z!AsyncResolver._resolve_with_queryr(cs
|jSr)r8Zcancelr)rrrr*szAsyncResolver.close)N)r+r,r-r.rr/r0rrrr1r2r rrr'r:r*rrrrr
Ds2 r
)r/rtypingrrrrabcrZhelpersr__all__r6ImportErrorZaiodns_defaultr	r
rrrrr<module>s
0Q
Back to Directory File Manager