HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/aiohttp/__pycache__/resolver.cpython-310.pyc
o

+we��@s�UddlZddlZddlmZmZmZmZmZmZddl	m
Z
ddlmZdZ
zddlZWney8dZYnwdZGdd	�d	e
�ZGd
d�de
�ZeeeefZerWeneZeed<dS)
�N)�Any�Dict�List�Optional�Type�Union�)�AbstractResolver)�get_running_loop)�ThreadedResolver�
AsyncResolver�DefaultResolverFc@sbeZdZdZddeejddfdd�Zdej	fde
d	ed
edee
e
effdd�Zdd
d�ZdS)rz�Threaded resolver.

    Uses an Executor for synchronous getaddrinfo() calls.
    concurrent.futures.ThreadPoolExecutor is used by default.
    N�loop�returncCst|�|_dS�N)r
�_loop)�selfr�r�I/home/arjun/projects/env/lib/python3.10/site-packages/aiohttp/resolver.py�__init__szThreadedResolver.__init__r�hostname�port�familyc
�s��|jj||tj|tjd�IdH}g}|D]L\}}}}}|tjkrFt|�dkr(q|dr=t�|tjtj	B�\}	}
t
|
�}n|dd�\}	}n|tjksMJ�|\}	}|�||	|||tj
tjBd��q|S)N)�typer�flags���r�hostrr�protor)r�getaddrinfo�socket�SOCK_STREAM�
AI_ADDRCONFIG�AF_INET6�len�getnameinfo�NI_NUMERICHOST�NI_NUMERICSERV�int�AF_INET�append�AI_NUMERICHOST�AI_NUMERICSERV)rrrr�infos�hosts�_r�addressr�_portrrr�resolves>��
�

��zThreadedResolver.resolvec�s�dSrr�rrrr�closeJs�zThreadedResolver.closer�rN)�__name__�
__module__�__qualname__�__doc__r�asyncio�AbstractEventLooprr!r*�strr)rrrr3r5rrrrrs����
�,rc@s�eZdZdZ	ddeejdededdfdd�Zd	e	j
fd
ededede
eeeffd
d�Zd	e	j
fd
ededede
eeeffdd�Zddd�ZdS)rz9Use the `aiodns` package to make asynchronous DNS lookupsNr�args�kwargsrcOsLtdurtd��t|�|_tj|d|i|��|_t|jd�s$|j|_dSdS)Nz Resolver requires aiodns libraryr�
gethostbyname)	�aiodns�RuntimeErrorr
r�DNSResolver�	_resolver�hasattr�_resolve_with_queryr3)rrr>r?rrrrQs
�zAsyncResolver.__init__rrrrc	
�s��z|j�||�IdH}Wn!tjjy.}zt|j�dkr#|jdnd}t|�|�d}~wwg}|jD]}|�	||||dt
jt
jBd��q4|sMtd��|S)Nr�DNS lookup failedrr)
rDr@rA�error�DNSErrorr%r>�OSError�	addressesr+r!r,r-)	rrrr�resp�exc�msgr/r1rrrr3as,�
��

��zAsyncResolver.resolvec

�s��|tjkr	d}nd}z|j�||�IdH}Wn!tjjy8}zt|j�dkr-|jdnd}t	|�|�d}~wwg}|D]}	|�
||	j||dtjd��q=|sTt	d��|S)N�AAAA�ArrGrr)
r!r$rD�queryrArHrIr%r>rJr+rr,)
rrrr�qtyperLrMrNr/�rrrrrrF{s2�

����z!AsyncResolver._resolve_with_queryc�s�|j��dSr)rD�cancelr4rrrr5�s�zAsyncResolver.closerr6)r7r8r9r:rr;r<rrr!r*r=r)rrr3rFr5rrrrrNsB����
�����
�����
� rr
)r;r!�typingrrrrrr�abcr	�helpersr
�__all__rA�ImportError�aiodns_defaultrr�_DefaultTyper
�__annotations__rrrr�<module>s 
 �:Q