Sindbad~EG File Manager
a
��g�, � @ s� d dl Z d dlZd dlZd dlZd dlZddlmZ dZdZdZ ej
ejfdd�Zefd d
�Z
dd� Zd
d� Ze� Zdadd� Zdd� Ze� Ze jedd�dd��ZdS )� N� )�support� localhostz 127.0.0.1z::1c C s: t � | |��}t|�}W d � n1 s*0 Y ~|S )N)�socket� bind_port)�family�socktypeZtempsock�port� r
�6/usr/local/lib/python3.9/test/support/socket_helper.py�find_unused_port s 8&r c C s� | j tjkr�| jtjkr�ttd�r@| �tjtj�dkr@t �
d��ttd�r�z"| �tjtj�dkrjt �
d��W n ty~ Y n0 ttd�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 )r r �AF_INET�type�SOCK_STREAM�hasattr�
getsockopt�
SOL_SOCKETr
r Z
TestFailedr �OSError�
setsockoptr �bind�getsockname)�sock�hostr r
r
r r L s
r c C s8 z| � |� W n$ ty2 | �� t�d��Y n0 d S )Nzcannot bind AF_UNIX sockets)r �PermissionError�close�unittestZSkipTest)r �addrr
r
r �bind_unix_sockets s
r! c C st t jrpd } zVz2t � t jt j�} | �tdf� W W | r<| �� dS tyP Y n0 W | rp| �� n| rn| �� 0 dS )Nr TF)r �has_ipv6�AF_INET6r r �HOSTv6r r )r r
r
r �_is_ipv6_enabled| s �
�
r% c C s� t td�st�d�| �S td u r�ddlm}m} |d }t�tj��d}zHz|� |� daW n( t
y� } z|aW Y d }~n
d }~0 0 W ||� n
||� 0 W d � n1 s�0 Y tr�dt }t�|�| �S | S d S )N�AF_UNIXzNo UNIX Socketsr )�TESTFN�unlinkZcan_bind_unix_socketFz%Requires a functional unix bind(): %s)r r r �skip�_bind_nix_socket_errorZtest.supportr'