관리-도구
편집 파일: session.cpython-39.opt-1.pyc
a ������g�����������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl m Z mZ�ddlm Z �ddlmZmZmZmZ�e�d�jZe�e�ZdZe���deeed�dd ��ZG�d d��d�ZG�dd ��d ee�ZdS�)�����N)�Mapping�Sequence����)� ssh_errors)�InteractionAgent�InteractionError�InteractionHandler�write_askpass_to_tmpdir�x)�feature�teststr�returnc�����������������C���sF���z*t�jdd|���d|���ddgt�jd��W�dS��t�jy@���Y�dS�0�d�S�) N�ssh�-o� z-GZnonexisting)�stderrTF)� subprocessZcheck_output�DEVNULLZCalledProcessError)r���r�����r����A/usr/lib/python3.9/site-packages/cockpit/_vendor/ferny/session.py�has_feature%���s ����$r���c�������������������@���sD���e�Zd�Zee�ee�d�dd�Zeeef�eeef�d�dd�ZdS�)�SubprocessContext��argsr ���c�����������������C���s���|S�)a���Return the args required to launch a process in the given context. For example, this might return a vector with ["sudo"] or ["flatpak-spawn", "--host"] prepended. It is also possible that more substantial changes may be performed. This function is not permitted to modify its argument, although it may (optionally) return it unmodified, if no changes are required. r�����selfr���r���r���r����wrap_subprocess_args/���s����z&SubprocessContext.wrap_subprocess_args)�envr ���c�����������������C���s���|S�)aj��Return the envp required to launch a process in the given context. For example, this might set the "SUDO_ASKPASS" environment variable, if needed. As with wrap_subprocess_args(), this function is not permitted to modify its argument, although it may (optionally) return it unmodified if no changes are required. r���)r���r���r���r���r����wrap_subprocess_env?���s���� z%SubprocessContext.wrap_subprocess_envN)�__name__� __module__�__qualname__r����strr���r���r���r���r���r���r���r���.���s���r���c�������������������@���s����e�Zd�ZU�dZded<�dZded<�dZded<�deedddd dd ddd� d d�Z ed�dd�Z dd�dd�Zdd�dd�Zdd�dd�Z ee�ee�d�dd�ZdS�)�SessionNz"tempfile.TemporaryDirectory | None�_controldirz str | None�_controlsockz!asyncio.subprocess.Process | None�_processFzMapping[str, str] | Nonez int | NonezInteractionHandler | None) �destination�handle_host_key� configfile� identity_file� login_name�options�pkcs11�port�interaction_responderr ���c ���������������������sX��t�j�t�j�dd�d�} t�j| dd��tj| d�|�_|�jj ��d�|�_ t|�jj �}tt�j�}||d<�d |d <�d|d<�d dd|�j dddd|���g} |d�ur�| � d|�����|d�ur�| � d|�����|d�ur�|D�]}| � d|��d||������q�|d�u�r| � d|�����|d�u�r| � d|�����|d�u�r8| � d|�����|�rbtd��rb| �dd|��d�ddg��t| d�u�rt| gng��}tjdg| �|�R�|dtjjtjj|dd��d ��I�d�H�}z|���I�d�H��||�_W�n��t�y�}�z*|���I�d�H��t�t|��d��W�Y�d�}~nNd�}~0��t�yR���z|����W�n�t�y<���Y�n0�|���I�d�H����Y�n0�d�S�)!NZXDG_RUNTIME_DIRz/runZfernyT)�exist_ok)�dirz/socketZSSH_ASKPASS�forceZSSH_ASKPASS_REQUIRE�-ZDISPLAYz-Mz-N�-Sr���zPermitLocalCommand=yesz LocalCommand=z-Fz-ir���z-Iz-pz-lZKnownHostsCommandzKnownHostsCommand=z %I %H %t %K %fzStrictHostKeyChecking=yesz/usr/bin/sshc�������������������S���s���t�ttj�S��N)�prctl�PR_SET_PDEATHSIG�signal�SIGKILLr���r���r���r����<lambda>���������z!Session.connect.<locals>.<lambda>)r���Zstart_new_session�stdin�stdoutr���Z preexec_fn)�os�path�join�environ�get�makedirs�tempfileZTemporaryDirectoryr$����namer%���r ����dict�appendr����extendr����asyncioZcreate_subprocess_execr���r���Zcommunicater&���r����waitr���Zget_exception_for_ssh_stderrr"���� BaseException�kill�ProcessLookupError)r���r'���r(���r)���r*���r+���r,���r-���r.���r/���ZrundirZaskpass_pathr���r����keyZagentZprocess�excr���r���r����connectT���sj���� � �� $zSession.connect)r ���c�����������������C���s ���|�j�d�uS�r5���)r&����r���r���r���r����is_connected����s����zSession.is_connectedc���������������������s���|�j����I�d�H��d�S�r5���)r&���rJ���rQ���r���r���r���rJ�������s����zSession.waitc�����������������C���s���|�j�����d�S�r5���)r&���Z terminaterQ���r���r���r����exit����s����zSession.exitc���������������������s���|������|����I�d�H��d�S�r5���)rS���rJ���rQ���r���r���r���� disconnect����s����zSession.disconnectr���c�����������������C���s���dd|�j�dgttj|��R�S�)Nr���r4�����)r%����map�shlex�quoter���r���r���r���r�������s����zSession.wrap_subprocess_args)FNNNNNNN)r���r ���r!���r$����__annotations__r%���r&���r"����boolrP���rR���rJ���rS���rT���r���r���r���r���r���r���r#���L���s6��� ����������Zr#���)r ���)rI���Zctypes� functoolsZloggingr>���rW���r8���r���rD����typingr���r���rU���r���Zinteraction_agentr���r���r���r ���ZCDLLr6���Z getLoggerr����loggerr7���� lru_cacher"���rZ���r���r���r#���r���r���r���r����<module>���s$���