HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-310.pyc
o

@%Ne%�@s�ddlmZddlZddlmZddlmZddlmZddl	m
Z
mZd	d
�Zej
ddfdd�Zd
d�Zdd�Zdd�Zed�ZdS)�)�absolute_importN�)�_appengine_environ)�LocationParseError)�six�)�NoWayToWaitForSocketError�
wait_for_readcCsHt|dd�}|durdS|durdSzt|dd�WSty#YdSw)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
�r�E/usr/lib/python3/dist-packages/pip/_vendor/urllib3/util/connection.py�is_connection_droppeds
�rcCs(|\}}|�d�r|�d�}d}t�}z|�d�Wnty-t�td|�d�YSwt�	|||tj
�D]Q}|\}	}
}}}
d}z't�|	|
|�}t||�|tjurY|�
|�|r`|�|�|�|
�|WStjy�}z|}|dur~|��d}WYd}~q7d}~ww|dur�|�t�d��)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
�errr�create_connection%sD

��





��
r1cCs$|durdS|D]}|j|�qdS)N)�
setsockopt)r
�options�optrrrrds
�rcCstj}trtj}|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)rrrrlsrcCs`d}d}t��r
dStjr(zt�tj�}|�|df�d}Wn	ty'Ynw|r.|��|S)z4Returns True if the system can bind an IPv6 address.NFrT)r�is_appengine_sandboxr�has_ipv6�AF_INET6r�	Exceptionr")r&r
r9rrr�	_has_ipv6ws�r<z::1)�
__future__rr�contribr�
exceptionsr�packagesr�waitrr	rrr1rrr<r6rrrr�<module>s
�?