CasperSecurity

Current Path : /lib/python3.10/multiprocessing/__pycache__/
Upload File :
Current File : //lib/python3.10/multiprocessing/__pycache__/forkserver.cpython-310.pyc

o

`�win/�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddlm
Z
ddl	mZddl	mZddl	mZgd	�Zd
Ze�d�ZGdd
�d
e�Zddd�Zdd�Zdd�Zdd�Ze�ZejZejZejZejZdS)�N�)�
connection)�process)�	reduction)�resource_tracker)�spawn)�util)�ensure_running�get_inherited_fds�connect_to_new_process�set_forkserver_preload��qc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�
ForkServercCs.d|_d|_d|_d|_t��|_dg|_dS)N�__main__)�_forkserver_address�_forkserver_alive_fd�_forkserver_pid�_inherited_fds�	threading�Lock�_lock�_preload_modules��self�r�1/usr/lib/python3.10/multiprocessing/forkserver.py�__init__"s
zForkServer.__init__cCs4|j�
|��Wd�dS1swYdS�N)r�_stop_unlockedrrrr�_stop*s
"�zForkServer._stopcCsV|jdurdSt�|j�d|_t�|jd�d|_t�|j�s&t�|j�d|_dS)Nr)	r�os�closer�waitpidr�is_abstract_socket_namespacer�unlinkrrrrr/s

zForkServer._stop_unlockedcCs&tdd�|jD��std��||_dS)z>Set list of module names to try to load in forkserver process.css�|]	}t|�tuVqdSr)�type�str)�.0�modrrr�	<genexpr>@s�z4ForkServer.set_forkserver_preload.<locals>.<genexpr>z&module_names must be a list of stringsN)�allr�	TypeError)r�
modules_namesrrrr>s
z!ForkServer.set_forkserver_preloadcCs|jS)z�Return list of fds inherited from parent process.

        This returns None if the current process was not started by fork
        server.
        )rrrrrr
DszForkServer.get_inherited_fdsc
Cs�|��t|�dtkrtd��t�tj��X}|�|j�t�	�\}}t�	�\}}|||j
t��g}||7}z,zt
�||�||fWWt�|�t�|�Wd�St�|�t�|��t�|�t�|�w1sqwYdS)a;Request forkserver to create a child process.

        Returns a pair of fds (status_r, data_w).  The calling process can read
        the child process's pid and (eventually) its returncode from status_r.
        The calling process should write to data_w the pickled preparation and
        process data.
        �ztoo many fdsN)r	�len�MAXFDS_TO_SEND�
ValueError�socket�AF_UNIX�connectrr!�piperr�getfdr�sendfdsr")r�fds�client�parent_r�child_w�child_r�parent_w�allfdsrrrrLs0�


�



�z!ForkServer.connect_to_new_processcs�|j��t��|jdur1t�|jtj�\}}|s"	Wd�dSt�|j�d|_	d|_d|_d}|j
rKddh�t�d�}�fdd�|�
�D�}ni}t�tj��s}t�d�}|�|�t�|�sit�|d	�|��t��\}}z<z+|��|g}	||��||j
|f;}t��}
|
gt��}|d
|g7}t�|
||	�}Wn	t�|��Wt�|�nt�|�w||_	||_||_Wd�n1s�wYWd�dSWd�dS1s�wYdS)z�Make sure that a fork server is running.

        This can be called from any process.  Note that usually a child
        process will just reuse the forkserver started by its parent, so
        ensure_running() will do nothing.
        NzCfrom multiprocessing.forkserver import main; main(%d, %d, %r, **%r)�	main_path�sys_path�ignorecsi|]\}}|�vr||�qSrr)r(�x�y��desired_keysrr�
<dictcomp>�sz-ForkServer.ensure_running.<locals>.<dictcomp>r3i�z-c)rrr	rr!r#�WNOHANGr"rrrr�get_preparation_data�itemsr2r3r�arbitrary_address�bindrr$�chmod�listenr5�fileno�get_executable�_args_from_interpreter_flags�spawnv_passfds)r�pid�status�cmd�data�listener�address�alive_r�alive_w�fds_to_pass�exe�argsrrDrr	isZ
�	



�
���"�zForkServer.ensure_runningN)
�__name__�
__module__�__qualname__rr rrr
rr	rrrrr srcCs�|r4d|vr |dur dt��_zt�|�Wt��`nt��`w|D]}zt|�Wq"ty3Yq"wt��t	�
�\}}t	�|d�t	�|d�dd�}tj
|tjtji}	dd�|	��D�}
t�|�i}tjtj|d	���y}t����b}
|��t_|
�|tj�|
�|tj�|
�|tj�	�z(	d
d�|
��D�}|r�nq�||vr�t	�|d�d
ks�Jd��t�||v�r	t	�|d�	zt	�dt	j�\}}Wn	t y�Yn5w|dkr�n/|�!|d�}|du�rt	�"|�}zt#||�Wn	t$y�Ynwt	�%|�nt&�'d|�q�||v�r�|�(�d��}t)�*|t+d�}t,|�t+k�r-t-d�.t,|����|^}}}|�%�t	�/�}|dk�r�d}z<z|�%�|
�%�||||g}|�0|�1��t2||||
�}Wnt3�yvt4j5t4�6��t4j7�8�YnwWt	�9|�n,t	�9|�wzt#||�Wn
t$�y�Ynw|||<t	�%|�|D]}t	�%|��q�Wd�n	1�s�wYWnt:�y�}z|j;t;j<k�r̂WYd}~nd}~wwq�1�s�wYWd�dS1�s�wYdS)zRun forkserver.rNTFcWsdSrr)�_unusedrrr�sigchld_handler�szmain.<locals>.sigchld_handlercSsi|]\}}|t�||��qSr)�signal)r(�sig�valrrrrF�s�zmain.<locals>.<dictcomp>)rNcSsg|]\}}|j�qSr)�fileobj)r(�key�eventsrrr�
<listcomp>�szmain.<locals>.<listcomp>r�zNot at EOF?i���rz.forkserver: waitpid returned unexpected pid %dzToo many ({0:n}) fds to send)=r�current_process�_inheritingr�import_main_path�
__import__�ImportErrorr�_close_stdinr!r5�set_blockingrb�SIGCHLD�SIGINT�SIG_IGNrI�
set_wakeup_fdr2r3�	selectors�DefaultSelector�getsockname�_forkserverr�register�
EVENT_READ�select�read�
SystemExitr#rG�ChildProcessError�pop�waitstatus_to_exitcode�write_signed�BrokenPipeErrorr"�warnings�warn�acceptr�recvfdsr0r/�RuntimeError�format�fork�extend�values�
_serve_one�	Exception�sys�
excepthook�exc_info�stderr�flush�_exit�OSError�errno�ECONNABORTED)�listener_fdrX�preloadr?r@�modname�sig_r�sig_wra�handlers�old_handlers�	pid_to_fdrV�selector�rfdsrR�stsr;�
returncode�sr8r<�code�
unused_fds�fd�errr�main�s�
���
�
�
�

���
��

����
���&����8�r�c	Csht�d�|��D]
\}}t�||�q	|D]}t�|�q|^t_tj_	t_
t�|�}t�
||�}|S)Nrj)rbrurIr!r"ryrr�_resource_tracker�_fdr�dupr�_main)	r<r8r�r�rcrdr��parent_sentinelr�rrrr�+s
�
r�cCsXd}tj}t|�|kr%t�||t|��}|std��||7}t|�|kst�|�dS)Nrizunexpected EOFr)�
SIGNED_STRUCT�sizer/r!r}�EOFError�unpack)r�rU�lengthr�rrr�read_signedBs�r�cCsBt�|�}|rt�||�}|dkrtd��||d�}|sdSdS)Nrzshould not get here)r��packr!�writer�)r��n�msg�nbytesrrrr�Ls
�r�)NN) r�r!rvrbr2�structr�rr��rr�contextrrrr�__all__r0�Structr��objectrr�r�r�r�ryr	r
rrrrrr�<module>s<




Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY