HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/resolver.cpython-310.pyc
o

;j�&�@s�UddlZddlZddlZddlmZmZmZddlmZm	Z	dZ
zddlZeej
d�ZWn
ey:dZdZYnwejejBZejejBZejZeed�rTeejMZGd	d
�d
e�ZGdd�de�ZGd
d�d�ZeeeBZerueneZeed<dS)�N)�Any�Final�Optional�)�AbstractResolver�
ResolveResult)�ThreadedResolver�
AsyncResolver�DefaultResolver�getaddrinfoF�AI_MASKc
@s\eZdZdZddejdBddfdd�Zdejfde	d	e
d
ejdee
fdd�Zdd
d�ZdS)rz�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�D/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/resolver.py�__init__"szThreadedResolver.__init__r�host�port�familyc�s��|jj||tj|td�IdH}g}|D]I\}}}}}|tjkrEt|�dkr'q|dr<|j�|t�IdH\}	}
t	|
�}n|dd�\}	}n|tj
ksLJ�|\}	}|�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_hostZ_portrrr�resolve%s@��
�
��zThreadedResolver.resolvec�s�dSrr�rrrr�closeQs�zThreadedResolver.closer�rN)�__name__�
__module__�__qualname__�__doc__r�AbstractEventLooprr!r)�strr(�
AddressFamily�listrr1r3rrrrrs����
�,rc@s�eZdZdZ	ddejdBdededdfdd�Zd	ej	fd
e
dedejde
efd
d�Zd	ej	fd
e
dedede
ee
effdd�Zddd�ZdS)r	z9Use the `aiodns` package to make asynchronous DNS lookupsNr
�args�kwargsrcOsxtdurtd��|p
t��|_d|_|s|r!tj|i|��|_dSt�|_|j�	||j�|_t
|jd�s:|j|_dSdS)Nz Resolver requires aiodns library�
gethostbyname)
�aiodns�RuntimeErrorrrr�_manager�DNSResolver�	_resolver�_DNSResolverManager�get_resolver�hasattr�_resolve_with_queryr1)rr
r=r>rrrrXs�zAsyncResolver.__init__rrrrc�sB�z|jj||tj|td�IdH}Wn"tjjy4}zt|j	�dkr(|j	dnd}t
d|�|�d}~wwg}|jD]]}|j}	|j
tjkrvt|	�dkrj|	drj|j�|	d�d�g|	dd��Rt�IdH}
|
j}n|	d�d�}|	d}n|j
tjks~J�|	d�d�}|	d}|�t||||j
dtd��q:|s�t
dd��|S)N)rrrrr�DNS lookup failedrr�asciir)rDrr!r"r#r@�error�DNSErrorr%r=�OSErrorZnodes�addrrr$r&�decoder'�noder)r*rr+)rrrr�resp�exc�msgr-rPr/�resultr0rrrr1qsT����

�
��
zAsyncResolver.resolvec

�s��|tjkrdnd}z|j�||�IdH}Wn"tjjy8}zt|j�dkr,|jdnd}t	d|�|�d}~wwg}|D]}	|�
||	j||dtjd��q=|sUt	dd��|S)NZAAAA�ArrIrr)
r!r$rD�queryr@rKrLr%r=rMr*r�AI_NUMERICHOST)
rrrrZqtyperQrRrSr-ZrrrrrrH�s.�����
z!AsyncResolver._resolve_with_queryc�sF�|jr|j�||j�d|_d|_dS|jdur|j��d|_dSr)rB�release_resolverrrD�cancelr2rrrr3�s�


zAsyncResolver.closerr4)r5r6r7r8rr9rrr!r)r:r(r;r<rr1�dictrHr3rrrrr	UsB����
�����
�3����
�r	csneZdZUdZdZeded<d�fdd�Zddd�Zd	d
de	j
ddfd
d�Zd	d
de	j
ddfdd�Z�Z
S)rEz�Manager for aiodns.DNSResolver objects.

    This class manages shared aiodns.DNSResolver instances
    with no custom arguments across different event loops.
    N�	_instancercs(|jdurt��|�|_|j��|jSr)r[�super�__new__�_init)�cls��	__class__rrr]�s

z_DNSResolverManager.__new__cCst��|_dSr)�weakref�WeakKeyDictionary�
_loop_datar2rrrr^�s�z_DNSResolverManager._init�clientr	r
zaiodns.DNSResolvercCsJ||jvrtj|d�}t��}||f|j|<n|j|\}}|�|�|S)a&Get or create the shared aiodns.DNSResolver instance for a specific event loop.

        Args:
            client: The AsyncResolver instance requesting the resolver.
                   This is required to track resolver usage.
            loop: The event loop to use for the resolver.
        )r
)rdr@rCrb�WeakSet�add)rrer
�resolver�
client_setrrrrF�s

z _DNSResolverManager.get_resolvercCsN|j�|�}|durdS|\}}|�|�|s%|dur|��|j|=dSdS)z�Release the resolver for an AsyncResolver client when it's closed.

        Args:
            client: The AsyncResolver instance to release.
            loop: The event loop the resolver was using.
        N)rd�get�discardrY)rrer
Zcurrent_loop_datarhrirrrrX�s

�z$_DNSResolverManager.release_resolver)rrEr4)r5r6r7r8r[r�__annotations__r]r^rr9rFrX�
__classcell__rrr`rrE�s&

��
����rEr
) rr!rb�typingrrr�abcrr�__all__r@rGrCZaiodns_default�ImportErrorrW�AI_NUMERICSERVr+�NI_NUMERICHOST�NI_NUMERICSERVr'�
AI_ADDRCONFIGr#rrr	rErZ_DefaultTyper
rlrrrr�<module>s.
�

:xC