HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/websocket/__pycache__/_url.cpython-310.pyc
o

�h��@s�ddlZddlZddlZddlmZddlmZmZddlm	Z		ddgZ
ded	efd
d�Z
ddgZd
ed	efdd�Zded	efdd�Zdeded	efdd�Zdedeed	efdd�Z					d!dededeededeedeeded	efd d�ZdS)"�N)�Optional)�unquote�urlparse�)�WebSocketProxyException�	parse_url�get_proxy_info�url�returncCs�d|vrtd��|�dd�\}}t|dd�}|jr|j}ntd��d}|jr)|j}d}|d	kr4|s3d
}n|dkr?d}|s>d
}ntd|��|jrL|j}nd}|jrY|d|j��7}||||fS)z�
    parse url and the result is tuple of
    (hostname, port, resource path and the flag of secure mode)

    Parameters
    ----------
    url: str
        url string.
    �:zurl is invalidr�http)�schemezhostname is invalidrF�ws�P�wssTi�zscheme %s is invalid�/�?)�
ValueError�splitr�hostname�port�path�query)r	r
�parsedrr�	is_secure�resource�r�A/usr/local/CyberCP/lib/python3.10/site-packages/websocket/_url.pyrs6
���	localhostz	127.0.0.1�addrcCs(zt�|�WdStjyYdSw)NFT)�socket�	inet_aton�error)rrrr�_is_ip_addressOs��r#rcCsLz|�d�\}}t|�odt|�kodkWSWSty%YdSw)Nrr� F)rr#�intr)rr�netmaskrrr�_is_subnet_addressXs(�r'�ip�netcCsZt�dt�|��d}|�d�\}}t�dt�|��d}ddt|�>d@}||@|kS)Nz!Irrl��r$)�struct�unpackr r!rr%)r(r)�ipaddr�netaddrr&rrr�_is_address_in_network`s
r.�no_proxycs�|stj�dtj�dd���dd�}r|�d�}|st}d|vr#dS�|vr)dSt��r8t�fdd	�|D��Sd
d	�|D�D]
}��|�rIdSq?dS)Nr/�NO_PROXY�� �,�*Tcsg|]}t|�rt�|��qSr)r'r.)�.0�subnet�rrr�
<listcomp>xs��z%_is_no_proxy_host.<locals>.<listcomp>cSsg|]	}|�d�r|�qS)�.)�
startswith)r5�domainrrrr8~sF)	�os�environ�get�replacer�DEFAULT_NO_PROXY_HOSTr#�any�endswith)rr/�vr;rr7r�_is_no_proxy_hostis,�

��
�rDrr�
proxy_host�
proxy_port�
proxy_auth�
proxy_typecCs�t||�rdS|r|std��|}|}|||fS|rdnd}	tj�|	tj�|	��d���dd�}
|
rLt|
�}|jrCt	|j�t	|j
�fnd}|j|j|fSdS)a�
    Try to retrieve proxy host and port from environment
    if not provided in options.
    Result is (proxy_host, proxy_port, proxy_auth).
    proxy_auth is tuple of username and password
    of proxy authentication information.

    Parameters
    ----------
    hostname: str
        Websocket server name.
    is_secure: bool
        Is the connection secure? (wss) looks for "https_proxy" in env
        instead of "http_proxy"
    proxy_host: str
        http proxy host name.
    proxy_port: str or int
        http proxy port.
    no_proxy: list
        Whitelisted host names that don't use the proxy.
    proxy_auth: tuple
        HTTP proxy auth information. Tuple of username and password. Default is None.
    proxy_type: str
        Specify the proxy protocol (http, socks4, socks4a, socks5, socks5h). Default is "http".
        Use socks4a or socks5h if you want to send DNS requests through the proxy.
    )NrNz+Cannot use port 0 when proxy_host specified�https_proxy�
http_proxyr1r2N)
rDrr<r=r>�upperr?r�usernamer�passwordrr)rrrErFrGr/rHr�auth�env_key�value�proxyrrrr�s(
#
���)NrNNr)r<r r*�typingr�urllib.parserr�_exceptionsr�__all__�str�tuplerr@�boolr#r'r.�listrDr%rrrrr�<module>sH.		���������