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__/_http.cpython-310.pyc
o

�h2�@s�dZddlZddlZddlZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZddlmZmZmZddlmZmZdd	lmZmZgd
�ZzddlTddlmZdd
lmZdZWndZGdd�de �Z!Gdd�de �Z"Gdd�de �Z#YGdd�d�Z$de%de&fdd�Z'de%fdd�Z(de)de*de&fd d!�Z+d"d#�Z,d$ejd%e-fd&d'�Z.d$ejd(e-fd)d*�Z/d$ejde)dejfd+d,�Z0d$ejde&fd-d.�Z1dS)/a_
_http.py
websocket - WebSocket client library for Python

Copyright 2024 engn33r

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
�N)�encodebytes�)�WebSocketAddressException�WebSocketException�WebSocketProxyException)�debug�dump�trace)�DEFAULT_SOCKET_OPTION�	recv_line�send)�HAVE_SSL�ssl)�get_proxy_info�	parse_url)�
proxy_info�connect�read_headers)�*)�	ProxyType)�ProxyTFc@�eZdZdS)�
ProxyErrorN��__name__�
__module__�__qualname__�rr�B/usr/local/CyberCP/lib/python3.10/site-packages/websocket/_http.pyr-�rc@r)�ProxyTimeoutErrorNrrrrrr 0rr c@r)�ProxyConnectionErrorNrrrrrr!3rr!c@seZdZdd�ZdS)rcKs�|�dd�|_|jr8|�dd�|_|�dd�|_|�dd�|_|�dd�|_|�dd�|_|jd	vr6td
��dSd|_d|_d|_d|_dS)N�http_proxy_host�http_proxy_portr�http_proxy_auth�
http_no_proxy�
proxy_type�http�http_proxy_timeout)r'�socks4�socks4a�socks5�socks5hz7Only http, socks4, socks5 proxy protocols are supported)�get�
proxy_host�
proxy_port�auth�no_proxy�proxy_protocol�
proxy_timeoutr)�self�optionsrrr�__init__8s 
��
zproxy_info.__init__N)rrrr6rrrrr7sr�url�returncCs�tstd��t|�\}}}}|jdkrd}tj}n |jdkr$d}tj}n|jdkr/d}tj}n
|jdkr9d}tj}tj||j	t
|j�|jrJ|jdnd|jrS|jd	nd|d
�}	|	j
|||jd�}
|rqtrmt|
|j|�}
ntd��|
|||ffS)
Nz>Python Socks is needed for SOCKS proxying but is not availabler)Fr*Tr+r,rr)r&�host�port�username�password�rdns)�timeout�SSL not available.)�HAVE_PYTHON_SOCKSrrr2r�SOCKS4�SOCKS5r�creater.�intr/r0rr3r
�_ssl_socket�sslopt)r7r5�proxy�hostnamer:�resource�	is_securer=r&�ws_proxy�sockrrr�_start_proxied_socketRs>�



�	rMcCs�|jr|s|jdkrt|||�St|�\}}}}|r!||||ffSt||||�\}}	}
|s7td|�d|����d}z)t||j|j�}|	rKt	||||
�}|r[t
rWt||j|�}ntd��||||ffWS|rl|�
��)Nr'zHost not found.: �:r?)r.r2rMr�_get_addrinfo_listr�_open_socket�sockoptr>�_tunnelr
rErF�close)r7r5rG�socketrH�
port_from_urlrIrJ�
addrinfo_list�need_tunnelr0rLrrrr}s0
�rr:rJc	
Cs�t|||j|j|j|j�\}}}z*|s$t�||dtjtj�}|ddfWS|r(|p)d}t�||dtjtj�}|d|fWStj	yK}zt
|��d}~ww)NrF�PT)rr.r/r0r1rT�getaddrinfo�SOCK_STREAM�SOL_TCP�gaierrorr)	rHr:rJrG�phost�pport�pauthrV�errrrO�s.
�����rOc
Csd}|D]}|dd�\}}}t�|||�}|�|�tD]}	|j|	�q|D]}	|j|	�q'|d}
d}|s�z
|�|
�W	|Stjy�}z4|��t|
d�|_z
t	j
t	jt	jf}Wnt
ynt	j
t	jf}Ynw|j	|vrv|�|}WYd}~q5d}~wwq|r�|�|S)N��r)rT�
settimeoutr
�
setsockoptr�errorrS�str�	remote_ip�errno�ECONNREFUSED�WSAECONNREFUSED�ENETUNREACH�AttributeError)
rVrQr>�err�addrinfo�family�socktype�protorL�opts�addressre�eConnRefusedrrrrP�sL
���
��rPrLrFc
Cs~|�dd�}|s�t�|�dtj��}tj�dd�|_|�dtj�tjkrH|�dd�}|�dd�}|s4|r<|j||d�nt	|d�rH|�
tjj�|�d	d�r_|�
|d	|�d
d�|�dd��|�dtj�tjkrw|�dd
�swd
|_tj|_n|�dd�|_|�dtj�|_d|vr�|�|d�d|vr�|d\}}}	|�
|||	�d|vr�|�|d�|j||�dd�|�dd�|d�S)N�context�ssl_version�
SSLKEYLOGFILE�	cert_reqs�ca_certs�ca_cert_path)�cafile�capath�load_default_certs�certfile�keyfiler<�check_hostnameFT�ciphers�
cert_chain�
ecdh_curve�do_handshake_on_connect�suppress_ragged_eofs)r�r��server_hostname)r-r�
SSLContext�PROTOCOL_TLS_CLIENT�os�environ�keylog_filename�	CERT_NONE�load_verify_locations�hasattrr}�Purpose�SERVER_AUTH�load_cert_chainr��verify_mode�
CERT_REQUIRED�set_ciphers�set_ecdh_curve�wrap_socket)
rLrFrHr�rur{r|r~rr<rrr�_wrap_sni_socket�sJ


�	�


�r��user_ssloptcCs�dtji}|�|�tj�d�}|r%tj�|�r%|�dd�dur%||d<n|r9tj�|�r9|�dd�dur9||d<|�dd�rC|d}|�dd�}t	||||�}|S)Nrx�WEBSOCKET_CLIENT_CA_BUNDLEryrzr�r�T)
rr��updater�r�r-�path�isfile�isdirr�)rLr�rHrF�	cert_pathr�rrrrE!s(

�
�
�
�rEc

Cs�td�d|�d|�d�}|d|�d|�d�7}|rE|drE|d}|dr/|d|d��7}t|��������d	d
�}|d|�d�7}|d7}td|�t||�z	t|�\}}}Wnt	yn}	zt
t|	���d}	~	ww|d
krzt
d|����|S)NzConnecting proxy...zCONNECT rNz HTTP/1.1
zHost: z
rr�
�zProxy-Authorization: Basic zrequest header��z!failed CONNECT via proxy status: )r�base64encode�encode�strip�decode�replacerrr�	Exceptionrrf)
rLr9r:r0�connect_header�auth_str�encoded_str�status�_r`rrrrR<s*

��rRc	Cs�d}d}i}td�	t|�}|�d���}|snSt|�|s6|�dd�}t|d�}t|�dkr5|d}n5|�dd�}t|�dkrFtd��|\}}|��d	krc|�	d	�rc|�	d	�d
|��|d	<n|��||��<qtd�|||fS)Nz--- response header ---Tzutf-8� �rrNzInvalid headerz
set-cookiez; z-----------------------)
r	rr�r��splitrD�lenr�lowerr-)	rLr��status_message�headers�line�status_info�kv�key�valuerrrrXs4��
r)2�__doc__rhr�rT�base64rr��_exceptionsrrr�_loggingrrr	�_socketr
rr�_ssl_compatr
r�_urlrr�__all__�python_socks._errors�python_socks._typesr�python_socks.syncrr@r�rr r!rrf�tuplerMrrD�boolrOrP�dictr�rErRrrrrr�<module>s<+% +4