HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/support/__pycache__/socket_helper.cpython-310.opt-2.pyc
o

�i�,�@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�~|S1swY~|S)N)�socket�	bind_port)�family�socktypeZtempsock�port�r
�7/usr/local/lib/python3.10/test/support/socket_helper.py�find_unused_ports7

��rcCs�	|jtjkrO|jtjkrOttd�r!|�tjtj�dkr!t	�
d��ttd�rAz|�tjtj�dkr6t	�
d��Wn	ty@Ynwttd�rO|�
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$



��
rcCs4	z|�|�WdSty|��t�d��w)Nzcannot bind AF_UNIX sockets)r�PermissionError�close�unittestZSkipTest)r�addrr
r
r�bind_unix_socketss
�r!cCs~	tjr=d}z.zt�tjtj�}|�tdf�WW|r!|��dSdSty+YnwW|r3|��dS|r<|��wwdS)NrTF)r�has_ipv6�AF_INET6rr�HOSTv6rr)rr
r
r�_is_ipv6_enabled|s*����
�r%cCs�	ttd�s
t�d�|�Stdur]ddlm}m}|d}t�tj��2}z$z	|�	|�daWnt
yB}z|aWYd}~nd}~wwW||�n||�wWd�n1sXwYtrjdt}t�|�|�S|S)N�AF_UNIXzNo UNIX Socketsr)�TESTFN�unlinkZcan_bind_unix_socketFz%Requires a functional unix bind(): %s)rrr�skip�_bind_nix_socket_errorZ	os_helperr'r(r&rr)�testr'r(�pathr�e�msgr
r
r�skip_unless_bind_unix_socket�s*

����r/cCs`	tjg}ttd�r|�tj�ttd�r|�tj�ttd�r&|�tj�ts.|�tj�|S)N�ENETUNREACH�
EADDRNOTAVAIL�EHOSTUNREACH)	�errno�ECONNREFUSEDr�appendr0r1r2�IPV6_ENABLEDZEAFNOSUPPORT)�errorsr
r
r�get_socket_conn_refused_errs�s


r8r
)�timeout�errnosc

#sn�	ddl}ddl�|turtj}gd�}gd�}t�d|��|�g��s4dd�|D��dd�|D������fdd	�}t��}zoz|durLt�|�dVWnX|j	yn}ztj
rgtj�
�jdd
��|�d}~wty�}z/	|j}	t|	�dkr�t|	dt�r�|	d}nt|	�d
kr�t|	dt�r�|	d}nnqv||��d}~wwWt�|�dSt�|�w)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 availablecS�g|]
\}}tt||��qSr
)�getattrr3��.0�name�numr
r
r�
<listcomp>���z&transient_internet.<locals>.<listcomp>cSrIr
)rJrrKr
r
rrO�rPcs�t|dd�}t|t�sBt|tj�r|�vsBt|�jj�r(d|jkr'dksBnt|�jj�r>d|j	vsBd|j	vsBd|j	vsB|�vrSt
jsPtj
��jdd��|�dS)	Nr3i�iW�ConnectionRefusedError�TimeoutError�EOFErrorr�
)rJ�
isinstancerRr�gaierror�error�	HTTPError�code�URLError�reasonr�verbose�sys�stderr�write�args)�err�n�Zcaptured_errnosZdeniedZ
gai_errnos�urllibr
r�filter_error�s$

���


�z(transient_internet.<locals>.filter_errorrTTrr)�nntplibZurllib.error�_NOT_SETrZINTERNET_TIMEOUTZResourceDeniedr�getdefaulttimeout�setdefaulttimeoutZNNTPTemporaryErrorr\r]r^r_r`r�lenrU)
Z
resource_namer9r:rfZdefault_errnosZdefault_gai_errnosreZold_timeoutra�ar
rcr�transient_internet�sX�
	��

�

����rl)�
contextlibr3rrr]�rZHOSTZHOSTv4r$rrrrr!r%r6r*r/r8�objectrg�contextmanagerrlr
r
r
r�<module>s(='