HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-311.pyc
�

�mi%���ddlmZddlZddlmZddlmZddlmZddl	m
Z
mZd	�Zej
ddfd
�Zd�Zd�Zd
�Zed��ZdS)�)�absolute_importN�)�_appengine_environ)�LocationParseError)�six�)�NoWayToWaitForSocketError�
wait_for_readc�~�t|dd��}|durdS|�dS	t|d���S#t$rYdSwxYw)a$
    Returns True if the connection is dropped and should be closed.

    :param conn:
        :class:`http.client.HTTPConnection` object.

    Note: For platforms like AppEngine, this will always return ``False`` to
    let the platform handle connection recycling transparently for us.
    �sockFNTg)�timeout)�getattrr
r	)�connrs  �ED:\Python311\Lib\site-packages\pip/_vendor/urllib3/util/connection.py�is_connection_droppedrsm���4���'�'�D��u�}���u����t���T�3�/�/�/�/��$�����u�u����s�.�
<�<c��|\}}|�d��r|�d��}d}t��}	|�d��n5#t$r(tjtd|z��d��cYSwxYwtj	|||tj
��D]�}|\}	}
}}}
d}	tj|	|
|��}t||��|tjur|�
|��|r|�|��|�|
��|cS#tj$r$}|}|�|���d}Yd}~��d}~wwxYw|�|�tjd���)akConnect to *address* and return the socket object.

    Convenience function.  Connect to *address* (a 2-tuple ``(host,
    port)``) and return the socket object.  Passing the optional
    *timeout* parameter will set the timeout on the socket instance
    before attempting to connect.  If no *timeout* is supplied, the
    global default timeout setting returned by :func:`socket.getdefaulttimeout`
    is used.  If *source_address* is set it must be a tuple of (host, port)
    for the socket to bind as a source address before making the connection.
    An host of '' or port 0 tells the OS to use the default.
    �[z[]N�idnaz'%s', label empty or too longz!getaddrinfo returns an empty list)�
startswith�strip�allowed_gai_family�encode�UnicodeErrorr�
raise_fromr�socket�getaddrinfo�SOCK_STREAM�_set_socket_options�_GLOBAL_DEFAULT_TIMEOUT�
settimeout�bind�connect�error�close)�addressr
�source_address�socket_options�host�port�err�family�res�af�socktype�proto�	canonname�sar�es                r�create_connectionr3%s���$�J�D�$����s��� ��z�z�$����
�C�
 �
!�
!�F�
����F�������
�
�
��~��?�$�F�G�G��
�
�	
�	
�	
�
����
�!�$��f�f�6H�I�I����-0�*��H�e�Y����	��=��X�u�5�5�D�
 ��n�5�5�5��f�<�<�
)�����(�(�(��
*��	�	�.�)�)�)��L�L������K�K�K���|�	�	�	��C��
��
�
���������������		�������	�
�,�:�
;�
;�;s+�A�/B	�B	�:A6D3�3E&�E!�!E&c�,�|�dS|D]}|j|��
dS)N)�
setsockopt)r�options�opts   rrrds:�������������������c�D�tj}trtj}|S)z�This function is designed to work in the context of
    getaddrinfo, where family=socket.AF_UNSPEC is the default and
    will perform a DNS search for both IPv6 and IPv4 records.)r�AF_INET�HAS_IPV6�	AF_UNSPEC)r+s rrrls ��
�^�F��"��!���Mr8c��d}d}tj��rdStjrI	tjtj��}|�|df��d}n#t$rYnwxYw|r|���|S)z4Returns True if the system can bind an IPv6 address.NFrT)r�is_appengine_sandboxr�has_ipv6�AF_INET6r!�	Exceptionr$)r(rr?s   r�	_has_ipv6rBws����D��H��.�0�0���u�
���	��=���1�1�D��I�I�t�Q�i� � � ��H�H���	�	�	��D�	�������
�
�����Os�7A�
A,�+A,z::1)�
__future__rr�contribr�
exceptionsr�packagesr�waitr	r
rrr3rrrBr;�r8r�<module>rIs���&�&�&�&�&�&�
�
�
�
�(�(�(�(�(�(�+�+�+�+�+�+�������:�:�:�:�:�:�:�:����8
�*���	<<�<<�<<�<<�~���������<�9�U�����r8