HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/asyncio/__pycache__/base_subprocess.cpython-310.pyc
o

�N�g�"�@sxddlZddlZddlZddlmZddlmZddlmZGdd�dej�Z	Gdd	�d	ej
�ZGd
d�deej�Z
dS)�N�)�	protocols)�
transports)�loggercs�eZdZ	d0�fdd�	Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	e
jfdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Z�ZS)1�BaseSubprocessTransportNc
	st��|
�d|_||_||_d|_d|_d|_g|_t	�
�|_i|_d|_
|tjkr0d|jd<|tjkr:d|jd<|tjkrDd|jd<z|jd||||||d�|��Wn|���|jj|_|j|jd<|j��r�t|ttf�rx|}n|d}t�d||j�|j�|�|	��dS)	NFrr�)�args�shell�stdin�stdout�stderr�bufsize�
subprocesszprocess %r created: pid %s�)�super�__init__�_closed�	_protocol�_loop�_proc�_pid�_returncode�
_exit_waiters�collections�deque�_pending_calls�_pipes�	_finishedr�PIPE�_start�close�pidZ_extra�	get_debug�
isinstance�bytes�strr�debugZcreate_task�_connect_pipes)
�self�loop�protocolrr	r
rrr
�waiter�extra�kwargsZprogram��	__class__r�=/opt/saltstack/salt/lib/python3.10/asyncio/base_subprocess.pyrsH






�
�

�z BaseSubprocessTransport.__init__cCs|jjg}|jr
|�d�|jdur|�d|j���|jdur*|�d|j���n|jdur5|�d�n|�d�|j�d�}|durM|�d|j���|j�d�}|j�d	�}|durk||urk|�d
|j���n|durx|�d|j���|dur�|�d|j���d
�	d�
|��S)N�closedzpid=zreturncode=Zrunningznot startedrzstdin=rrzstdout=stderr=zstdout=zstderr=z<{}>� )r/�__name__r�appendrrr�get�pipe�format�join)r(�infor
rrrrr0�__repr__7s,





z BaseSubprocessTransport.__repr__cKst��N)�NotImplementedError)r(rr	r
rrr
r-rrr0rTszBaseSubprocessTransport._startcC�
||_dSr;�r)r(r*rrr0�set_protocolW�
z$BaseSubprocessTransport.set_protocolcC�|jSr;r>�r(rrr0�get_protocolZ�z$BaseSubprocessTransport.get_protocolcCrAr;)rrBrrr0�
is_closing]rDz"BaseSubprocessTransport.is_closingcCs�|jrdSd|_|j��D]}|durq
|j��q
|jdurI|jdurK|j��durM|j�	�r6t
�d|�z|j��WdSt
yHYdSwdSdSdS)NTz$Close running child process: kill %r)rr�valuesr6r rr�pollrr"r�warning�kill�ProcessLookupError)r(�protorrr0r `s(


��zBaseSubprocessTransport.closecCs*|js|d|��t|d�|��dSdS)Nzunclosed transport )�source)r�ResourceWarningr )r(�_warnrrr0�__del__{s�zBaseSubprocessTransport.__del__cCrAr;)rrBrrr0�get_pid�rDzBaseSubprocessTransport.get_pidcCrAr;)rrBrrr0�get_returncode�rDz&BaseSubprocessTransport.get_returncodecCs||jvr|j|jSdSr;)rr6)r(�fdrrr0�get_pipe_transport�s
z*BaseSubprocessTransport.get_pipe_transportcCs|jdurt��dSr;)rrJrBrrr0�_check_proc�s
�z#BaseSubprocessTransport._check_proccCs|��|j�|�dSr;)rTr�send_signal)r(�signalrrr0rU�sz#BaseSubprocessTransport.send_signalcC�|��|j��dSr;)rTr�	terminaterBrrr0rX��z!BaseSubprocessTransport.terminatecCrWr;)rTrrIrBrrr0rI�rYzBaseSubprocessTransport.killc	
�s��zy�j}�j}|jdur"|��fdd�|j�IdH\}}|�jd<|jdur<|��fdd�|j�IdH\}}|�jd<|jdurV|��fdd�|j�IdH\}}|�jd<�jdus]J�|�	�j
j���jD]
\}}|j	|g|�R�qhd�_Wn7tt
fy��ty�}z"|dur�|��s�|�|�WYd}~dSWYd}~dSWYd}~dSd}~ww|dur�|��s�|�d�dSdSdS)Nc�
t�d�S)Nr)�WriteSubprocessPipeProtorrBrr0�<lambda>��
z8BaseSubprocessTransport._connect_pipes.<locals>.<lambda>rcrZ)Nr��ReadSubprocessPipeProtorrBrr0r\�r]rcrZ)Nrr^rrBrr0r\�r]r)rrr
Zconnect_write_piperrZconnect_read_piperr�	call_soonr�connection_made�
SystemExit�KeyboardInterrupt�
BaseException�	cancelledZ
set_exception�
set_result)	r(r+�procr)�_r6�callback�data�excrrBr0r'�sL�

�


�


�

����z&BaseSubprocessTransport._connect_pipescGs6|jdur|j�||f�dS|jj|g|�R�dSr;)rr4rr`)r(�cbrjrrr0�_call�s
zBaseSubprocessTransport._callcCs|�|jj||�|��dSr;)rmrZpipe_connection_lost�_try_finish)r(rRrkrrr0�_pipe_connection_lost�sz-BaseSubprocessTransport._pipe_connection_lostcCs|�|jj||�dSr;)rmrZpipe_data_received)r(rRrjrrr0�_pipe_data_received�sz+BaseSubprocessTransport._pipe_data_receivedcCs�|dusJ|��|jdusJ|j��|j��rt�d||�||_|jjdur+||j_|�|jj	�|�
�|jD]}|��sD|�
|�q9d|_dS)Nz%r exited with return code %r)rrr"rr9r�
returncodermrZprocess_exitedrnrrerf)r(rqr+rrr0�_process_exited�s


�
z'BaseSubprocessTransport._process_exitedc�s2�|jdur	|jS|j��}|j�|�|IdHS)zdWait until the process exit and return the process return code.

        This method is a coroutine.N)rrZ
create_futurerr4)r(r+rrr0�_wait�s�


zBaseSubprocessTransport._waitcCsL|jrJ�|jdurdStdd�|j��D��r$d|_|�|jd�dSdS)Ncss�|]
}|duo
|jVqdSr;)�disconnected)�.0�prrr0�	<genexpr>�s��z6BaseSubprocessTransport._try_finish.<locals>.<genexpr>T)rr�allrrFrm�_call_connection_lostrBrrr0rn�s

��z#BaseSubprocessTransport._try_finishcCs:z|j�|�Wd|_d|_d|_dSd|_d|_d|_wr;)r�connection_lostrr�r(rkrrr0ry�s
�z-BaseSubprocessTransport._call_connection_lost)NN)r3�
__module__�__qualname__rr:rr?rCrEr �warnings�warnrOrPrQrSrTrUrXrIr'rmrorprrrsrnry�
__classcell__rrr.r0r
s2�+&	rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)r[cCs||_||_d|_d|_dS)NF)rgrRr6rt)r(rgrRrrr0rs
z!WriteSubprocessPipeProto.__init__cCr=r;)r6)r(Z	transportrrr0rar@z(WriteSubprocessPipeProto.connection_madecCs d|jj�d|j�d|j�d�S)N�<z fd=z pipe=�>)r/r3rRr6rBrrr0r:
s z!WriteSubprocessPipeProto.__repr__cCs d|_|j�|j|�d|_dS)NT)rtrgrorRr{rrr0rz
s
z(WriteSubprocessPipeProto.connection_lostcC�|jj��dSr;)rgr�
pause_writingrBrrr0r��z&WriteSubprocessPipeProto.pause_writingcCr�r;)rgr�resume_writingrBrrr0r�r�z'WriteSubprocessPipeProto.resume_writingN)	r3r|r}rrar:rzr�r�rrrr0r[�sr[c@seZdZdd�ZdS)r_cCs|j�|j|�dSr;)rgrprR)r(rjrrr0�
data_receivedsz%ReadSubprocessPipeProto.data_receivedN)r3r|r}r�rrrr0r_sr_)rrr~�rr�logrZSubprocessTransportrZBaseProtocolr[ZProtocolr_rrrr0�<module>sv�