
    nbi                    x   U d dl mZ d dlZd dlZd dlZd dlZd dlZej        rddlm	Z	 ddl
mZ ej        dv Ze o'ej        dk    pdej        v pd	ej        v p
ej        d
k    Ze o
ej        dk    Z e ed eedd           eedd           eedd           eedd          f                    Zded<   erd dlZd dlZ G d dej                  Z	 ej        j        j        Zej        ej        j        ej        ej        j        ej        ej        j         ej         ej        j                  ej        ej        g	e_!        ej"        e_#        n# e$$ r dZY nw xY w	 ej        j        j%        Z&g e&_!        ej"        e&_#        n# e$$ r dZ&Y nw xY wej                            d          Z'dZ(dZ)dZ*ddZ+dS )    )annotationsN   )AsyncSocket)SSLTransport>   msyswin32cygwindarwinbsd	dragonflyioslinuxEBADFENOTSOCKEINVALENOTCONNzfrozenset[int]SOCKET_CLOSED_ERRNOSc                     e Zd ZdZdej        fdej        j        fdej        fdej        j	        fdej        j        fdej        j        fdej        j        fd	ej        j        fd
ej        j        fdej        j        fdej        j        fdej        fdej        fdej        j        fdej        j        fdej        j        fdej        j        fdej        j        fdej
        fgZdS )WindowsTcpInfoz
        WindowsTcpInfo structure (https://learn.microsoft.com/en-us/windows/desktop/api/mstcpip/ns-mstcpip-tcp_info_v0)

        Minimum supported client: (Windows 10, version 1703 // Windows Server 2016)
        StateMssConnectionTimeMsTimestampsEnabledRttUsMinRttUsBytesInFlightCwndSndWndRcvWndRcvBufBytesOutBytesInBytesReorderedBytesRetransFastRetrans	DupAcksInTimeoutEpisodes
SynRetransN)__name__
__module____qualname____doc__ctypesc_intwintypesULONGc_uint64BOOLEANc_uint8_fields_     p/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/urllib3_future/util/socket_state.pyr   r   (   s	       	 	 fl#FO)*1 &/"9:fo+,./fo34V_*+v,-v,-v,-)(v45V_23FO12&//0 566>*'
r6   r   l   '  0 i6'  i&'  i  sock*socket.socket | AsyncSocket | SSLTransportreturnboolc                   |                                  dk    rdS 	 |                     t          j        t          j                  }|dk    rdS n# t
          $ r Y dS w xY w	 | j        t          j        z  t          j        k    rdS n(# t          $ r | j        t          j        k    rY dS Y nw xY wt          rt          j        dv rt          t          dd          }nt          t          dd	          }	 |                     t          j        |d
          }n,# t
          $ r}|j        t          v rY d}~dS Y d}~dS d}~ww xY w|sdS t!          j        d|dd                   d         }|dk    S t$          rt          t          dd	          }	 |                     t          j        |d
          }n,# t
          $ r}|j        t          v rY d}~dS Y d}~dS d}~ww xY w|sdS t!          j        d|dd                   d         }|dk    S t&          rit(          dS t+          j        |                                            }t*          j                            d          }t3                      }	t*          j                            d          }
t)          |t4          t+          j        |          t*          j                            t+          j        |                    t+          j        |	          t*          j                            t+          j        |	                    t+          j        |
          dd	  	        }|dk    r|	j        dk    S t<          &t=                      }|t>          t@          tB          fv rdS dS )a  
    Determine by best effort if the socket is closed
    without ever attempting to read from it.
    This works by trying to get the TCP current status.

    That function is extremely sensible, making change here
    must be carefully thought before even suggesting a change.
    Fr   T>   r   r
   TCP_CONNECTION_INFOi  TCP_INFO   i   NB      )"fileno
getsockoptsocket
SOL_SOCKETSO_ERROROSErrortypeSOCK_STREAM	TypeErrorIS_DARWIN_OR_BSDsysplatformgetattrIPPROTO_TCPerrnor   structunpackIS_LINUXIS_NTWSAIoctl_Fnr-   c_void_pr/   DWORDr   SIO_TCP_INFOpointersizeofr   WSAGetLastError_FnWSAENOTSOCK	WSAEINVALWSA_OPERATION_ABORTED)r8   errr>   infoestater?   sockfdinfo_versiontcp_infobytes_returnedioctl_return_codes               r7   is_establishedrj   j   s    {{}}uoof/AA!885    uuI**v/AAA4 B   9***44 +*  j<,,,")&2G"O"O")&*b"A"A	??6#57JDQQDD 	 	 	w...uuuuu44444	
  	4]3QqS	2215 z	 K6:r22	??6#5xFFDD 	 	 	w...uuuuu44444	
  	4c4!9--a0  z	 -4//,,Q//!##..q11'N<((O!!&-"="=>>N8$$O!!&-"9"9::N>**

 

 !! >Q&&+$&&C%  
 u4sS   0A 
AA!"B B+*B+1!D 
D<D77D<
!F, ,
G6GG)r8   r9   r:   r;   ),
__future__r   rR   rN   rF   rS   typingTYPE_CHECKINGcontrib.ssar   util.ssltransportr   rO   rV   rM   rU   	frozensetfilterrP   r   __annotations__r-   ctypes.wintypes	Structurer   windllws2_32WSAIoctlrW   rX   r/   rY   POINTERargtypesr.   restypeAttributeErrorWSAGetLastErrorr]   rZ   r^   r_   r`   rj   r5   r6   r7   <module>r}      s   " " " " " " "  



   	 1))))))000000339 LH cl" |u	   ;CLG$;'0y
FGE7D))GE:t,,GE8T**GE:t,,		
 
( 
(  
 
 
 
 	 C MMM
 
 
 
 
) 
 
 
:m*3 OO!OO!OO!FN6?011OO
 
 %l   "#]1A&(#%+\"" " " "!" ?((	 L KII I I I I Is%   A<E E E $$F	 	FF