OwlCyberSecurity - MANAGER
Edit File: pty.cpython-36.opt-1.pyc
3 � \�������������������@���s����d�Z�ddlmZ�ddlZddlZdddgZdZdZdZdZd d��Z d d��Z dd ��Zdd��Zdd��Z dd��Zdd��Zeefdd�Zeefdd�ZdS�)zPseudo terminal utilities.�����)�selectN�openpty�fork�spawn��������c��������������C���s<���yt�j��S��ttfk r ���Y�nX�t��\}�}t|�}|�|fS�)zdopenpty() -> (master_fd, slave_fd) Open a pty master/slave pair, using os.openpty() if possible.)�osr����AttributeError�OSError�_open_terminal� slave_open)� master_fd� slave_name�slave_fd��r����/usr/lib64/python3.6/pty.pyr������s���� c��������������C���sL���yt�j��\}�}W�n�ttfk r(���Y�nX�t�j|�}t�j|��|�|fS�t��S�)z�master_open() -> (master_fd, slave_name) Open a pty master and return the fd, and the filename of the slave end. Deprecated, use openpty() instead.)r���r���r ���r ����ttyname�closer���)r ���r���r���r���r���r����master_open!���s���� r���c����������� ���C���sl���x^dD�]V}�xPdD�]H}d|��|�}yt�j|t�j�}W�n�tk rH���wY�nX�|d|��|�fS�W�qW�td��dS�)z1Open pty master and return (master_fd, tty_name).ZpqrstuvwxyzPQRSTZ0123456789abcdefz/dev/ptyz/dev/ttyzout of pty devicesN)r����open�O_RDWRr ���)�x�yZpty_name�fdr���r���r���r���1���s���� r���c�������������C���sn���t�j|�t�j�}yddlm}m}�W�n�tk r6���|S�X�y|||d��|||d��W�n�tk rh���Y�nX�|S�)z�slave_open(tty_name) -> slave_fd Open the pty slave and acquire the controlling terminal, returning opened filedescriptor. Deprecated, use openpty() instead.r���)�ioctl�I_PUSHZptemZldterm)r���r���r���Zfcntlr���r����ImportErrorr ���)Ztty_name�resultr���r���r���r���r���r���=���s����r���c��������������C���s����yt�j��\}�}W�n�ttfk r(���Y�n4X�|�tkrTyt�j���W�n�tk rR���Y�nX�|�|fS�t��\}}t�j��}�|�tkr�t�j���t�j|��t�j |t ��t�j |t��t�j |t��|tkr�t�j|��t�j t�jt�t�j�}t�j|��n t�j|��|�|fS�)zdfork() -> (pid, master_fd) Fork and make the child a session leader with a controlling terminal.)r����forkptyr ���r ����CHILD�setsidr���r���r����dup2�STDIN_FILENO� STDOUT_FILENO� STDERR_FILENOr���r���r���)�pidr���r ���r���Ztmp_fdr���r���r���r���O���s0���� c�������������C���s&���x |r t�j|�|�}||d��}qW�dS�)z#Write all the data to a descriptor.N)r����write)r����data�nr���r���r����_writenw���s����r)���c�������������C���s���t�j|�d�S�)zDefault read function.i���)r����read)r���r���r���r����_read}���s����r+���c�������������C���sz���|�t�g}xlt|g�g��\}}}|�|krH||��}|s<|j|���ntjt|��t�|kr |t��}|sh|jt���q t|�|��q W�dS�)z�Parent copy loop. Copies pty master -> standard output (master_read) standard input -> pty master (stdin_read)N)r"���r����remover���r&���r#���r)���)r ����master_read� stdin_readZfdsZrfdsZwfdsZxfdsr'���r���r���r����_copy����s����r/���c�������������C���s����t�|��t�d�kr|�f}�t��\}}|tkr<tj|�d�f|�����ytjt�}tjt��d}W�n�tj k rr���d}Y�nX�yt |||��W�n(�tk r����|r�tjttj |��Y�nX�tj|��tj|d�d�S�)zCreate a spawned process.��r���r���)�typer���r���r����execlp�ttyZ tcgetattrr"���Zsetraw�errorr/���r ���Z tcsetattrZ TCSAFLUSHr����waitpid)�argvr-���r.���r%���r ����modeZrestorer���r���r���r�������s$���� )�__doc__r���r���r3����__all__r"���r#���r$���r���r���r���r���r���r���r)���r+���r/���r���r���r���r���r����<module>���s"��� (