HEX
Server: Apache
System: Linux infong-uk86 4.4.400-icpu-106 #2 SMP Mon Sep 15 08:23:40 UTC 2025 x86_64
User: u44115835 (4976590)
PHP: 8.4.17
Disabled: NONE
Upload Files
File: //kunden/lib/python3/dist-packages/urllib3/util/__pycache__/connection.cpython-39.pyc
a

:�ri�@s�ddlmZddlZddlmZddlmZddlZddlm	Z	m
Z
dd	�Zejddfd
d�Z
dd
�Zdd�Zdd�Zed�ZdS)�)�absolute_importN)�LocationParseError�)�_appengine_environ�)�NoWayToWaitForSocketError�
wait_for_readcCsLt|dd�}|durdS|dur$dSzt|dd�WStyFYdS0dS)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)�getattrrr)Zconnr	�r�9/usr/lib/python3/dist-packages/urllib3/util/connection.py�is_connection_droppeds
rcCs4|\}}|�d�r|�d�}d}t�}z|�d�Wn&tyZt�td|�d�YS0t�	|||tj
�D]�}|\}	}
}}}
d}zNt�|	|
|�}t||�|tjur�|�
|�|r�|�|�|�|
�|WStj�y}z&|}|du�r|��d}WYd}~qnd}~00qn|du�r&|�t�d��dS)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[]NZidnaz'%s', label empty or too longz!getaddrinfo returns an empty list)�
startswith�strip�allowed_gai_family�encode�UnicodeError�sixZ
raise_fromr�socketZgetaddrinfoZSOCK_STREAM�_set_socket_options�_GLOBAL_DEFAULT_TIMEOUTZ
settimeout�bindZconnect�error�close)Zaddressr
Zsource_addressZsocket_options�hostZport�err�family�resZafZsocktype�protoZ	canonnameZsar	�errr
�create_connection&s>

�








r"cCs$|durdS|D]}|j|�qdS)N)Z
setsockopt)r	ZoptionsZoptrrr
resrcCstj}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.)rZAF_INET�HAS_IPV6Z	AF_UNSPEC)rrrr
rmsrcCs`d}d}t��rdStjrPz"t�tj�}|�|df�d}WntyNYn0|r\|��|S)z4Returns True if the system can bind an IPv6 address.NFrT)rZis_appengine_sandboxr�has_ipv6ZAF_INET6r�	Exceptionr)rr	r$rrr
�	_has_ipv6xsr&z::1)Z
__future__rrZurllib3.exceptionsrZcontribrr�waitrrrrr"rrr&r#rrrr
�<module>s�
?