
    D_	h                         S SK r S SKrS SKrS SKrSSKJr   " S S5      r\R                  S:X  a   " S S\\R                  5      r	g " S	 S\\R                  5      r	g)
    N   )	wasyncorec                   P    \ rS rSrSrSrS rS rS rS r	S r
S	 rSS
 jrS rSrg)_triggerbase5   z9OS-independent base class for OS-dependent trigger class.Nc                 T    SU l         [        R                  " 5       U l        / U l        g NF)_closed	threadingLocklockthunksselfs    N/var/www/html/fileupload/venv/lib/python3.13/site-packages/waitress/trigger.py__init___triggerbase.__init__:   s"     NN$	
     c                     gNT r   s    r   readable_triggerbase.readableF   s    r   c                     gr	   r   r   s    r   writable_triggerbase.writableI   s    r   c                     g Nr   r   s    r   handle_connect_triggerbase.handle_connectL   s    r   c                 $    U R                  5         g r   )closer   s    r   handle_close_triggerbase.handle_closeO   s    

r   c                 v    U R                   (       d(  SU l         U R                  5         U R                  5         g g r   )r
   del_channel_closer   s    r   r"   _triggerbase.closeV   s*    ||DLKKM r   c                     U(       a0  U R                      U R                  R                  U5        S S S 5        U R                  5         g ! , (       d  f       N= fr   )r   r   append_physical_pull)r   thunks     r   pull_trigger_triggerbase.pull_trigger\   s7    ""5)  s   A		
Ac                 N    U R                  S5        U R                     U R                   H  n U" 5         M     / U l        S S S 5        g ! [         a     g f = f!   [        R
                  " 5       u  p#pEU R                  SU SU SU S35         Mg  = f! , (       d  f       g = f)Ni    zexception in trigger thunk: (: ))recvOSErrorr   r   r   compact_tracebacklog_info)r   r,   niltvtbinfos         r   handle_read_triggerbase.handle_readb   s    	IIdO YYUG % DK Y  		U(1(C(C(E%CAMM$A!AaS&QR"ST Ys2   A BAB
AA5BB
B$)r
   r   r   r   )__name__
__module____qualname____firstlineno____doc__kindr   r   r   r   r#   r"   r-   r;   __static_attributes__r   r   r   r   r   5   s2    CD
r   r   posixc                   *    \ rS rSrSrS rS rS rSrg)triggers   pipec                     [         R                  U 5        [        R                  " 5       =u  o l        U l        [        R                  R                  XUS9  g )Nmap)r   r   osrH   rF   _fdsr   file_dispatcher)r   rK   rs      r   r   trigger.__init__v   s?    !!$'*,'')3OA|di%%..tC.@r   c                     U R                    H  n[        R                  " U5        M     / U l         [        R                  R                  U 5        g r   )rM   rL   r"   r   rN   )r   fds     r   r'   trigger._close{   s6    ii  DI%%++D1r   c                 F    [         R                  " U R                  S5        g N   x)rL   writerF   r   s    r   r+   trigger._physical_pull   s    HHT\\4(r   )rM   rF   N	r=   r>   r?   r@   rB   r   r'   r+   rC   r   r   r   rF   rF   s   s    	A
	2	)r   rF   c                   *    \ rS rSrSrS rS rS rSrg)rF      loopbackc                    [         R                  U 5        [        R                  " 5       nUR                  [        R                  [        R
                  S5        Sn US-  n[        R                  " 5       nUR                  S5        UR                  5       nUR                  S5         UR                  U5         UR!                  5       u  pxUR                  5         X l        [$        R&                  R                  XUS9  g ! [         ak  n[        USS 5      [        R                  :w  a  e US:  a+  UR                  5         UR                  5         [        S5      eUR                  5          S nAOS nAff = fGM!  )Nr   r   )z	127.0.0.1r   winerror
   zCannot bind trigger!rJ   )r   r   socket
setsockoptIPPROTO_TCPTCP_NODELAYbindgetsocknamelistenconnectr4   getattrerrnoWSAEADDRINUSEr"   RuntimeErroracceptrF   r   
dispatcher)	r   rK   wcountaconnect_addressdetailrO   addrs	            r   r   rP      s-   !!$' A LL++V-?-?CE
 MMO'("#--/IIo." hhjGAGGIL  ))$s);'  vz48E<O<OO  {		*+ABB GGII' s   *D 
E8A!E33E8c                 l    U R                   R                  5         U R                  R                  5         g r   )r`   r"   rF   r   s    r   r'   rS      s"    KKLL r   c                 :    U R                   R                  S5        g rU   )rF   sendr   s    r   r+   rX      s    LLd#r   )rF   NrY   r   r   r   rF   rF      s    5	<n	!
	$r   )ri   rL   r`   r    r   r   namerN   rF   rm   r   r   r   <module>ry      sZ     	   B9 9x 77g),	 9 9 )*@$,	 4 4 @$r   