
    Vf                         d dl Z d dlZd dlZd dlmZ d dlmZ d e j                  dfdZd Z	d Z
e j                  fdZd Zd e j                  dfd	Zy)
    N)log)hide_thread_from_debuggerc                    |dkD  sJ | d} |d}	 t               }|dk7  rst        j                  dk(  r0|j                  t        j
                  t        j                  d       n0	 |j                  t        j
                  t        j                  d       |j                  | |f       ||j                  |       |j                  |       |S # t        t        f$ r Y Jw xY w# t        $ r j                           w xY w)z9Return a local server socket listening on the given port.r   z	127.0.0.1win32   )	_new_socksysplatform
setsockoptsocket
SOL_SOCKETSO_EXCLUSIVEADDRUSESO_REUSEADDRAttributeErrorOSErrorbind
settimeoutlisten	Exceptionclose)hostportbacklogtimeoutservers        _/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/debugpy/common/sockets.pycreate_serverr      s     Q;;||19 ||w&!!&"3"3V5O5OQRS%%f&7&79L9LaP 	T4L!g&g M '0   s0   AC! $/C 7C! CC! CC! !C<c                      t               S )zAReturn a client socket that may be connected to a remote address.)r        r   create_clientr!   -   s
    ;r    c                     t        j                   t         j                  t         j                  t         j                        } 	 | j	                  t         j
                  t         j                  d       	 | j	                  t         j                  t         j                  d       	 | j	                  t         j                  t         j                  d       	 | j	                  t         j                  t         j                  d       | S # t        t        f$ r Y w xY w# t        t        f$ r Y w xY w# t        t        f$ r Y mw xY w# t        t        f$ r Y | S w xY w)Nr         )r   AF_INETSOCK_STREAMIPPROTO_TCPr   r   SO_KEEPALIVEr   r   TCP_KEEPIDLETCP_KEEPINTVLTCP_KEEPCNTsocks    r   r   r   2   s   ==););V=O=OPD))6+>+>B**F,?,?C**F,@,@!D**F,>,>B K G$  G$  G$  G$ KsH   /D 3/D #/D. /E DDD+*D+.E ?E EEc                 &    | j                  |       y)zShut down the given socket.N)shutdown)r-   hows     r   	shut_downr1   L   s    MM#r    c                 Z    	 t        |        | j                          y# t        $ r Y w xY w)zShutdown and close the socket.N)r1   r   r   r,   s    r   close_socketr3   Q   s-    $ 	JJL  s    	**c                 Z    |dkD  sJ 	 t        ||||      j	                         \  }}t        j
                  d ||        fd}t        j                  |      }d|_        t        |       |j                          S # t        $ r t        j                  d ||       Y w xY w)zAccepts TCP connections on the specified host and port, and invokes the
    provided handler function for every new connection.

    Returns the created server socket.
    r   z8Error listening for incoming {0} connections on {1}:{2}:z4Listening for incoming {0} connections on {1}:{2}...c                      	 	 j                         \  } \  }}t	        j
                  d||        |        8# t        t        j                  f$ r Y y w xY w)Nz.Accepted incoming {0} connection from {1}:{2}.)acceptr   r   errorr   info)r-   
other_host
other_porthandlerlistenernames      r   accept_workerzserve.<locals>.accept_workerl   sf    191B..z:
 HH@	 DM  V\\* s   ; AA)targetT)r   r   r   reraise_exceptiongetsocknamer8   	threadingThreaddaemonr   start)	r=   r;   r   r   r   r   r>   threadr<   s	   ``      @r   serverG   Z   s     Q;;
 tWg>
 %%'JD$HHCT4QUV  ]3FFMf%
LLNO9  
FdTX	

s   B !B*)B*)r   r	   rB   debugpy.commonr   debugpy.common.utilr   	SOMAXCONNr   r!   r   	SHUT_RDWRr1   r3   rG   r   r    r   <module>rL      s^   
  
   9 (8(8$ @
4 (( 
 %&v/?/? 'r    