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: //usr/local/lib/python3.10/dist-packages/aiohttp/__pycache__/resolver.cpython-310.pyc
o

���g��@s�UddlZddlZddlmZmZmZmZmZmZm	Z	ddl
mZmZdZ
zddlZeejd�ZWn
ey>dZdZYnwejejBZejejBZGdd	�d	e�ZGd
d�de�Zee	eefZergeneZeed<dS)
�N)�Any�Dict�List�Optional�Tuple�Type�Union�)�AbstractResolver�
ResolveResult)�ThreadedResolver�
AsyncResolver�DefaultResolver�getaddrinfoFc
@s\eZdZdZddeejddfdd�Zdej	fde
d	ed
ejde
efdd�Zdd
d�ZdS)rz�Threaded resolver.

    Uses an Executor for synchronous getaddrinfo() calls.
    concurrent.futures.ThreadPoolExecutor is used by default.
    N�loop�returncCs|pt��|_dS�N)�asyncio�get_running_loop�_loop)�selfr�r�;/usr/local/lib/python3.10/dist-packages/aiohttp/resolver.py�__init__szThreadedResolver.__init__r�host�port�familyc�s��|jj||tj|tjd�IdH}g}|D]I\}}}}}|tjkrFt|�dkr(q|dr=|j�|t�IdH\}	}
t	|
�}n|dd�\}	}n|tj
ksMJ�|\}	}|�t||	|||t
d��q|S)N)�typer�flags����hostnamerrr�protor)rr�socket�SOCK_STREAM�
AI_ADDRCONFIG�AF_INET6�len�getnameinfo�_NAME_SOCKET_FLAGS�int�AF_INET�appendr�_NUMERIC_SOCKET_FLAGS)rrrr�infos�hosts�_r#�address�
resolved_host�_portrrr�resolve!s@��
�
��zThreadedResolver.resolvec�s�dSrr�rrrr�closeMs�zThreadedResolver.closer�rN)�__name__�
__module__�__qualname__�__doc__rr�AbstractEventLooprr$r,�strr+�
AddressFamilyrrr5r7rrrrrs����
�,rc@s�eZdZdZ	ddeejdededdfdd�Zd	e	j
fd
edede	j
deefd
d�Zd	e	j
fd
edededeeeeffdd�Zddd�ZdS)r
z9Use the `aiodns` package to make asynchronous DNS lookupsNr�args�kwargsrcOs>tdurtd��tj|i|��|_t|jd�s|j|_dSdS)Nz Resolver requires aiodns library�
gethostbyname)�aiodns�RuntimeError�DNSResolver�	_resolver�hasattr�_resolve_with_queryr5)rrr@rArrrrTs�zAsyncResolver.__init__rrrrc�sD�z|jj||tj|tjd�IdH}Wn"tjjy5}zt|j	�dkr)|j	dnd}t
d|�|�d}~wwg}|jD]]}|j}	|j
}|tjkryt|	�dkrm|	drm|j�|	d�d�g|	dd��Rt�IdH}
|
j}n|	d�d�}|	d}n|tjks�J�|	d�d�}|	d}|�t||||dtd��q;|s�t
dd��|S)N)rrrrr	�DNS lookup failedrr�asciir!)rFrr$r%r&rC�error�DNSErrorr(r@�OSError�nodes�addrrr'r)�decoder*�noder,r-rr.)rrrr�resp�exc�msgr0rQr2�resultr3rrrr5csV����


�
��
zAsyncResolver.resolvec

�s��|tjkr	d}nd}z|j�||�IdH}Wn"tjjy9}zt|j�dkr-|jdnd}t	d|�|�d}~wwg}|D]}	|�
||	j||dtjd��q>|sVt	dd��|S)N�AAAA�Ar	rIrr!)
r$r'rF�queryrCrKrLr(r@rMr-r�AI_NUMERICHOST)
rrrr�qtyperRrSrTr0�rrrrrrH�s2�
����
z!AsyncResolver._resolve_with_queryc�s�|j��dSr)rF�cancelr6rrrr7�s�zAsyncResolver.closerr8)r9r:r;r<rrr=rrr$r,r>r+r?rrr5rrHr7rrrrr
QsB����
�����
�4����
� r
r)rr$�typingrrrrrrr�abcr
r�__all__rCrGrE�aiodns_default�ImportErrorrY�AI_NUMERICSERVr.�NI_NUMERICHOST�NI_NUMERICSERVr*rr
�_DefaultTyper�__annotations__rrrr�<module>s$
$�:i