o
    tPf                     @   sR   d dl mZmZmZ ddlmZ eddfddZeddfdd	Zedfd
dZdS )    )absolute_importprint_functiondivision   )DEFAULT_BIND_ADDR_TUPLE2   Tc                 C   sn   ddl m}m}m} |r%z| ||| ||dB  W n	 |y$   Y nw | | |d ur5| | d S d S )Nr   )
SOL_SOCKETSO_REUSEADDRerrorr   )socketr   r	   r
   
setsockopt
getsockoptbindlisten)sockaddressbacklog
reuse_addrr   r	   r
    r   W/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/testing/sockets.pybind_and_listen   s   
r   c                 C   s(   ddl m} | }t|| ||d |S )zKA shortcut to create a TCP socket, bind it and put it into listening state.r   r   r   r   )geventr   r   )r   r   r   r   r   r   r   r   tcp_listener%   s   r   c                 C   s0   ddl m} ||j|j}t|| d|d |S )zKA shortcut to create a UDF socket, bind it and put it into listening state.r   r   Nr   )r   r   AF_INET
SOCK_DGRAMr   )r   r   r   r   r   r   r   udp_listener,   s   r   N)	
__future__r   r   r   paramsr   r   r   r   r   r   r   r   <module>   s
   