Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/support/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/support/__pycache__/socket_helper.cpython-39.opt-2.pyc

a

��g�,�@s�ddlZddlZddlZddlZddlZddlmZdZdZdZ	ej
ejfdd�Zefd	d
�Z
dd�Zd
d�Ze�Zdadd�Zdd�Ze�Zejedd�dd��ZdS)�N�)�support�	localhostz	127.0.0.1z::1cCs:t�||��}t|�}Wd�n1s*0Y~|S)N)�socket�	bind_port)�family�socktypeZtempsock�port�r
�6/usr/local/lib/python3.9/test/support/socket_helper.py�find_unused_ports8&rcCs�|jtjkr�|jtjkr�ttd�r@|�tjtj�dkr@t	�
d��ttd�r�z"|�tjtj�dkrjt	�
d��Wnty~Yn0ttd�r�|�
tjtjd�|�|df�|��d}|S)N�SO_REUSEADDR�zHtests should never set the SO_REUSEADDR socket option on TCP/IP sockets!�SO_REUSEPORTzHtests should never set the SO_REUSEPORT socket option on TCP/IP sockets!�SO_EXCLUSIVEADDRUSEr)rr�AF_INET�type�SOCK_STREAM�hasattr�
getsockopt�
SOL_SOCKETr
rZ
TestFailedr�OSError�
setsockoptr�bind�getsockname)�sock�hostr	r
r
rrLs



rcCs8z|�|�Wn$ty2|��t�d��Yn0dS)Nzcannot bind AF_UNIX sockets)r�PermissionError�close�unittestZSkipTest)r�addrr
r
r�bind_unix_socketss
r!cCsttjrpd}zVz2t�tjtj�}|�tdf�WW|r<|��dStyPYn0W|rp|��n|rn|��0dS)NrTF)r�has_ipv6�AF_INET6rr�HOSTv6rr)rr
r
r�_is_ipv6_enabled|s �
�
r%cCs�ttd�st�d�|�Stdur�ddlm}m}|d}t�tj��d}zHz|�	|�daWn(t
y�}z|aWYd}~n
d}~00W||�n
||�0Wd�n1s�0Ytr�dt}t�|�|�S|SdS)N�AF_UNIXzNo UNIX Socketsr)�TESTFN�unlinkZcan_bind_unix_socketFz%Requires a functional unix bind(): %s)rrr�skip�_bind_nix_socket_errorZtest.supportr'r(r&rr)�testr'r(�pathr�e�msgr
r
r�skip_unless_bind_unix_socket�s 

2r/cCs^tjg}ttd�r|�tj�ttd�r4|�tj�ttd�rJ|�tj�tsZ|�tj�|S)N�ENETUNREACH�
EADDRNOTAVAIL�EHOSTUNREACH)	�errno�ECONNREFUSEDr�appendr0r1r2�IPV6_ENABLEDZEAFNOSUPPORT)�errorsr
r
r�get_socket_conn_refused_errs�s


r8r
)�timeout�errnosc

#s�ddl}ddl�|turtj}gd�}gd�}t�d|��|�g��sddd�|D��dd�|D������fdd	�}t��}z�z|dur�t�|�dVWn�|j	y�}z.tj
r�tj�
�jdd
��|�WYd}~n�d}~0t�yn}zr|j}	t|	�dk�r"t|	dt��r"|	d}q�t|	�dk�rPt|	dt��rP|	d}q�qPq�||��WYd}~n
d}~00Wt�|�nt�|�0dS)
Nr))r4�o)Z
ECONNRESET�h)r2�q)r0�e)Z	ETIMEDOUT�n)r1�c))�	EAI_AGAIN���)�EAI_FAIL���)�
EAI_NONAME���)�
EAI_NODATA���)Z
WSANO_DATAi�*zResource %r is not availablecSsg|]\}}tt||��qSr
)�getattrr3��.0�name�numr
r
r�
<listcomp>�s�z&transient_internet.<locals>.<listcomp>cSsg|]\}}tt||��qSr
)rIrrJr
r
rrN�s�cs�t|dd�}t|tj�s�t|tj�r,|�vs�t|�jj�rRd|jkrPdks�nt|�jj�r~d|j	vs�d|j	vs�d|j	vs�|�vr�t
js�tj
��jdd��|�dS)	Nr3i�iW�ConnectionRefusedError�TimeoutError�EOFErrorr�
)rI�
isinstancerr9�gaierror�error�	HTTPError�code�URLError�reasonr�verbose�sys�stderr�write�args)�err�n�Zcaptured_errnosZdeniedZ
gai_errnos�urllibr
r�filter_error�s2
����������	z(transient_internet.<locals>.filter_errorrRrr)�nntplibZurllib.error�_NOT_SETrZINTERNET_TIMEOUTZResourceDeniedr�getdefaulttimeout�setdefaulttimeoutZNNTPTemporaryErrorrZr[r\r]r^r�lenrS)
Z
resource_namer9r:rdZdefault_errnosZdefault_gai_errnosrcZold_timeoutr_�ar
rar�transient_internet�sH
	��



rj)�
contextlibr3rrr[�rZHOSTZHOSTv4r$rrrrr!r%r6r*r/r8�objectre�contextmanagerrjr
r
r
r�<module>s&='	

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists