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: sport3497 (1034)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib64/python3.10/site-packages/uvicorn/__pycache__/server.cpython-310.pyc
o

�hO2�@s8ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZddlmZddlmZddlmZmZddlZddlmZervddlmZdd	lmZdd
lmZddlm Z eeee efZ!ej"ej#fZ$e	jdkr�e$ej%f7Z$e�&d
�Z'Gdd�d�Z(Gdd�d�Z)dS)�)�annotationsN)�	Generator�Sequence)�
formatdate)�	FrameType)�
TYPE_CHECKING�Union)�Config)�H11Protocol)�HttpToolsProtocol)�WebSocketProtocol)�
WSProtocol�win32z
uvicorn.errorc@seZdZdZddd�ZdS)�ServerStatezP
    Shared servers state that is available between all protocol instances.
    �return�NonecCs d|_t�|_t�|_g|_dS)Nr)�total_requests�set�connections�tasks�default_headers��self�r�A/usr/local/CyberCP/lib/python3.10/site-packages/uvicorn/server.py�__init__-s
zServerState.__init__N�rr)�__name__�
__module__�__qualname__�__doc__rrrrrr(src@s�eZdZd)dd�Zd*d+d
d�Zd*d+dd
�Zd*d+dd�Zd*d+dd�Zd,dd�Zd-dd�Z	d.dd�Z
d*d+dd�Zd-dd �Ze
jd/d"d#��Zd0d'd(�ZdS)1�Server�configr	rrcCs0||_t�|_d|_d|_d|_d|_g|_dS)NFg)r"r�server_state�started�should_exit�
force_exit�
last_notified�_captured_signals)rr"rrrr5s
zServer.__init__N�sockets�list[socket.socket] | NonecCs|j��t�|j|d��S)N�r))r"�setup_event_loop�asyncio�run�serve�rr)rrrr.@s
z
Server.runc�s@�|���|�|�IdHWd�dS1swYdS�N)�capture_signals�_server0rrrr/Ds�
"�zServer.servec�s��t��}|j}|js|��|�|�|_d}dtjddd�d}t	j
||d|id�|j|d	�IdH|jr:dS|�
�IdH|j|d	�IdHd
}dtjddd�d}t	j
||d|id�dS)NzStarted server process [%d]zStarted server process [z%d�cyan)�fg�]�
color_message��extrar+zFinished server process [%d]zFinished server process [)�os�getpidr"�loaded�load�lifespan_class�lifespan�click�style�logger�info�startupr%�	main_loop�shutdown)rr)�
process_idr"�messager7rrrr3Hs"�z
Server._servec
�s4��j��IdH�jjrd�_dS�j�	dd��fdd�
}t��}|dur\dd
d�}g�_|D]'}t��dk}�j	d
krD|rD||�}|j
||�j�jd�IdH}�j�
|�q1|}n��jdur�t��jtjtj�}|j
||�j�jd�IdH}|jdus�J�|j}|g�_n��jdur�d}	tj��j�r�t��j�j}	|j|�j�j�jd�IdH}t��j|	�|jdus�J�|j}|g�_nGz|j
|�j�j�j�jd�IdH}Wn$ty�}
zt� |
��j�!�IdHt"�#d
�WYd}
~
nd}
~
ww|jdu�sJ�|j}|g�_|du�r��$|�n	d�_%dS)NT�_loop� asyncio.AbstractEventLoop | Noner�asyncio.Protocolcs�j��j�jj|d�S)N)r"r#�	app_staterI)�http_protocol_classr#r?�state)rI�r"rrr�create_protocolgs�z'Server.startup.<locals>.create_protocol�sock�socket.SocketTypecSs"ddlm}|�t���}||�S)Nr)�	fromshare)�socketrS�sharer:r;)rQrS�	sock_datarrr�
_share_socketxsz%Server.startup.<locals>._share_socket�Windows�)rQ�ssl�backlogi�)�pathrZr[)�host�portrZr[r1)rIrJrrK)rQrRrrR)&r?rDr%r"r-�get_running_loop�servers�platform�system�workers�
create_serverrZr[�append�fdrT�fromfd�AF_UNIX�SOCK_STREAMr)�udsr:r\�exists�stat�st_mode�create_unix_server�chmodr]r^�OSErrorrB�errorrF�sys�exit�_log_started_messager$)rr)rP�looprWrQ�
is_windows�server�	listeners�	uds_perms�excrrOrrD_sr��





�
�
��

zServer.startuprx�Sequence[socket.SocketType]c
Cs�|j}|jdur|d}t�d|���dS|jdur$t�d|j�dSd}|jdur-dn|j}d|vr6d}|j}|dkrE|d��d}|jrJd	nd
}d|�d�}dt	j
|d
d�d}	tj||||d|	id�dS)Nrz3Uvicorn running on socket %s (Press CTRL+C to quit)z8Uvicorn running on unix socket %s (Press CTRL+C to quit)z
%s://%s:%dz0.0.0.0�:z%s://[%s]:%drY�https�httpzUvicorn running on z (Press CTRL+C to quit)T)�boldr7r8)r"rfrBrC�getsocknamerjr]r^rZr@rA)
rrxr"rQ�addr_formatr]r^�
protocol_namerHr7rrrrt�s4
�

�zServer._log_started_messagec�sV�d}|�|�IdH}|s)|d7}|d}t�d�IdH|�|�IdH}|r
dSdS)NrrYi/
皙�����?)�on_tickr-�sleep)r�counterr%rrrrE�s��zServer.main_loopr��int�boolc�s��|ddkrAt��}t|dd���}|jjrd|fg}ng}||jj|j_|jjdurA||j	|jj
krA||_	|j��IdH|jrFdS|jj}|dur_|jj
|kr_t�d|�d��dSdS)	N�
rT)�usegmtsdatezMaximum request limit of z exceeded. Terminating process.F)�timer�encoder"�date_header�encoded_headersr#r�callback_notifyr'�timeout_notifyr%�limit_max_requestsrrB�warning)rr��current_time�current_dater��max_requestsrrrr��s&�zServer.on_tickc�s��t�d�|jD]}|��q	|pgD]}|��qt|jj�D]}|��q!t�	d�IdHztj
|��|jj
d�IdHWn!tjyat�dt|jj��|jjD]}|jdd�qVYnw|jso|j��IdHdSdS)Nz
Shutting downr�)�timeoutz=Cancel %s running task(s), timeout graceful shutdown exceededz2Task cancelled, timeout graceful shutdown exceeded)�msg)rBrCr`�close�listr#rrFr-r��wait_for�_wait_tasks_to_completer"�timeout_graceful_shutdown�TimeoutErrorrq�lenr�cancelr&r?)rr)rwrQ�
connection�trrrrFs4�




�
���	�zServer.shutdownc�s��|jjr%|js%d}t�|�|jjr%|js%t�d�IdH|jjr%|jr|jjrI|jsId}t�|�|jjrI|jsIt�d�IdH|jjrI|jr:|jD]	}|�	�IdHqLdS)Nz8Waiting for connections to close. (CTRL+C to force quit)r�z@Waiting for background tasks to complete. (CTRL+C to force quit))
r#rr&rBrCr-r�rr`�wait_closed)rr�rwrrrr�&s �
�
�
�zServer._wait_tasks_to_complete�Generator[None, None, None]c#s��t��t��urdVdS�fdd�tD�}zdVW|��D]
\}}t�||�q n|��D]
\}}t�||�q0wt�j�D]}t�|�qAdS)Ncsi|]
}|t�|�j��qSr)�signal�handle_exit)�.0�sigrrr�
<dictcomp>@sz*Server.capture_signals.<locals>.<dictcomp>)	�	threading�current_thread�main_thread�HANDLED_SIGNALS�itemsr��reversedr(�raise_signal)r�original_handlersr��handler�captured_signalrrrr28s����zServer.capture_signalsr��frame�FrameType | NonecCs0|j�|�|jr|tjkrd|_dSd|_dS)NT)r(rer%r��SIGINTr&)rr�r�rrrr�Ls

zServer.handle_exit)r"r	rrr1)r)r*rr)rxr{rrr)r�r�rr�)rr�)r�r�r�r�rr)rrrrr.r/r3rDrtrEr�rFr��
contextlib�contextmanagerr2r�rrrrr!4s

]
#
	
 r!)*�
__future__rr-r��loggingr:rar�rTrrr�r��collections.abcrr�email.utilsr�typesr�typingrrr@�uvicorn.configr	�uvicorn.protocols.http.h11_implr
�%uvicorn.protocols.http.httptools_implr�,uvicorn.protocols.websockets.websockets_implr�)uvicorn.protocols.websockets.wsproto_implr
�	Protocolsr��SIGTERMr��SIGBREAK�	getLoggerrBrr!rrrr�<module>s>�