BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib64/python3.6/site-packages/tornado/platform/__pycache__/caresresolver.cpython-36.pyc
3

	��f��@s�ddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
ddlZejrnddlm
Z
mZmZmZmZGdd�de	�ZdS)	�N)�Future)�gen)�IOLoop)�Resolver�is_valid_ip)�	Generator�Any�List�Tuple�Dictc@s`eZdZdZdd�dd�Zeeedd�dd�Zeedd	�d
d�Ze	j
deeed
d�dd��ZdS)�
CaresResolvera`Name resolver based on the c-ares library.

    This is a non-blocking and non-threaded resolver.  It may not produce
    the same results as the system resolver, but can be used for non-blocking
    resolution when threads cannot be used.

    c-ares fails to resolve some names when ``family`` is ``AF_UNSPEC``,
    so it is only recommended for use in ``AF_INET`` (i.e. IPv4).  This is
    the default for ``tornado.simple_httpclient``, but other libraries
    may default to ``AF_UNSPEC``.

    .. versionchanged:: 5.0
       The ``io_loop`` argument (deprecated since version 4.1) has been removed.
    N)�returncCs$tj�|_tj|jd�|_i|_dS)N)Z
sock_state_cb)rZcurrent�io_loop�pycaresZChannel�_sock_state_cb�channel�fds)�self�r�%/usr/lib64/python3.6/caresresolver.py�
initializes
zCaresResolver.initialize)�fd�readable�writabler
cCsz|r
tjnd|rtjndB}|s6|jj|�|j|=n@||jkrZ|jj||�||j|<n|jj||j|�||j|<dS)Nr)	r�READ�WRITErZremove_handlerrZupdate_handlerZadd_handler�_handle_events)rrrr�staterrrr$s

zCaresResolver._sock_state_cb)r�eventsr
cCs:tj}tj}|tj@r|}|tj@r(|}|jj||�dS)N)rZARES_SOCKET_BADrrrrZ
process_fd)rrrZread_fdZwrite_fdrrrr0s

zCaresResolver._handle_eventsrz*Generator[Any, Any, List[Tuple[int, Any]]])�host�port�familyr
c
#s�t|�r|g}nLt��|jj||�fdd���V\}}|rVtd|tjj|�|f��|j}g}xn|D]f}d|krzt	j
}	nd|kr�t	j}	nt	j}	|t	jkr�||	kr�td||	f��|j
tjt|	�||ff�qfW|S)Ncs�j||f�S)N)Z
set_result)�result�error)�futrr�<lambda>Csz'CaresResolver.resolve.<locals>.<lambda>z/C-Ares returned error %s: %s while resolving %s�.�:z%Requested socket family %d but got %d)rrrZ
gethostbyname�IOErrorr�errno�strerror�	addresses�socketZAF_INETZAF_INET6Z	AF_UNSPEC�append�typing�cast�int)
rrr r!r+r"r#ZaddrinfoZaddressZaddress_familyr)r$r�resolve9s.

zCaresResolver.resolve)r)
�__name__�
__module__�__qualname__�__doc__rr0�boolrrr�	coroutine�strr1rrrrrs	r)rr,Ztornado.concurrentrZtornadorZtornado.iolooprZtornado.netutilrrr.Z
TYPE_CHECKINGrrr	r
rrrrrr�<module>s