dMx d dl mZ d dlZddlmZ ddlmZ ddlmZ ddl m
Z
mZ d Zej
ddfd
Zd Zd Zd
Z ed ZdS ) )absolute_importN )_appengine_environ)LocationParseError)six )NoWayToWaitForSocketError
wait_for_readc ~ t | dd }|du rdS |dS t |d S # t $ r Y dS w xY w)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 u/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/pip/_vendor/urllib3/util/connection.pyis_connection_droppedr sg 4''Du}}u|tT3////$ uus .
<<c | \ }}| d r| d }d}t } | d n5# t $ r( t j t d|z d cY S w xY wt j |||t j
D ]}|\ } }
}}}
d} t j | |
| }t || |t j ur|
| |r| | | |
|c S # t j $ r$}|}|| d}Y d}~d}~ww xY w||t j d )ak Connect 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[]Nidnaz'%s', label empty or too longz!getaddrinfo returns an empty list)
startswithstripallowed_gai_familyencodeUnicodeErrorr
raise_fromr socketgetaddrinfoSOCK_STREAM_set_socket_options_GLOBAL_DEFAULT_TIMEOUT
settimeoutbindconnecterrorclose)addressr
source_addresssocket_optionshostporterrfamilyresafsocktypeproto canonnamesar es r create_connectionr3 % s $ JD$s zz$
C
!
!F
F
~?$FGG
!$ff6HII -0*HeY =Xu55D
n555f<<<(((
* .)))LLKKK| C
,:
;
;;s+ A /B B :A6D33E&E!!E&c , |d S |D ]} | j |
d S )N)
setsockopt)r optionsopts r r r d s7 c D t j } t rt j } | S )zThis 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_INETHAS_IPV6 AF_UNSPEC)r+ s r r r l s
^F "!Mr8 c d}d}t j rdS t j rI t j t j }| | df d}n# t $ r Y nw xY w|r| |S )z4Returns True if the system can bind an IPv6 address.NFr T)r is_appengine_sandboxr has_ipv6AF_INET6r! Exceptionr$ )r( r r? s r _has_ipv6rB w s DH .00 u
=11DIItQi HH D
Os 7A
A,+A,z::1)
__future__r r contribr
exceptionsr packagesr waitr r
r r r3 r r rB r; r8 r