HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: //lib/python3.6/site-packages/sshuttle/__pycache__/ssh.cpython-36.pyc
3

�f4_�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl	m
Z
ddlZddlm
Z
ddljZddlmZdd�Zd
dd�Zd	d
�Zdd�ZdS)�N)�quote)�urlparse)�debug2c	Cs2tjj|�}t|jd��}|j�jd�SQRXdS)NZrtzutf-8)�	importlib�util�	find_spec�open�origin�read�encode)�name�spec�f�r�/usr/lib/python3.6/ssh.py�get_module_sourcesrcCs>|st|�}|j|�}||jtj�7}d|jd�t|�|fS)Ns%s
%d
%s�ASCII)r�compress�flush�zlibZZ_SYNC_FLUSHr�len)�zr�data�contentrrr�	empackages

rcCs�d}d}d}|}d|kr>|jdd�\}}d|kr>|jd�\}}d|kr�yttj|��}WnXtk
r�tdj|��}yttj|j��}Wntk
r�|j}YnX|j	}YnX|dks�t
|�dkr�d}||||fS)a
    parses the given rhostport variable, looking like this:

            [username[:password]@]host[:port]

    if only host is given, can be a hostname, IPv4/v6 address or a ssh alias
    from ~/.ssh/config

    and returns a tuple (username, password, port, host)
    N�@��:z//{}r)�rsplit�split�str�	ipaddressZ
ip_address�
ValueErrorr�formatZhostname�portr)�	rhostportr$�username�password�hostZparsedrrr�parse_hostport!s*
r)cst|�\}}}}|r"dj||�}	n|}	tjd�}
td�}djdd�t|j��D��}|jd�}t	|
d�t	|
d	|�t	|
d
�t	|
d�t	|
d�t	|
d
�d}
dt
jp�dt|�f}t
jdd|j��}|	s�tjd|g}n�|r�tj|�}ndg}|dk	�rdt|�g}ng}|�r d||f}n dtjt|�f}djt|��}|dk	�rtt|�tjd<ddg|||	d|g}n|||	d|g}tj�\}��fdd�}tj|j��tj|j��}}|j�td|�tj ||||d |d!�}tj|�tj|��j!|��j!|
�|�fS)"Nz{}@{}rzsshuttle.assembler�css|]\}}d||fVqdS)z%s=%r
Nr)�.0�k�vrrr�	<genexpr>^szconnect.<locals>.<genexpr>ZUTF8Zsshuttlezsshuttle.cmdline_optionszsshuttle.helperszsshuttle.ssnetzsshuttle.hostwatchzsshuttle.server�
z�
                import sys, os;
                verbosity=%d;
                sys.stdin = os.fdopen(0, "rb");
                exec(compile(sys.stdin.read(%d), "assembler.py", "exec"))
                rz\s+� z-cZsshz-pz'%s' -c '%s'z2P=python3; $P -V 2>%s || P=python; exec "$P" -c %sz
/bin/sh -c {}ZSSHPASSZsshpassz-ez--cs�j�dS)N)�closer)�s2rr�setup�szconnect.<locals>.setupzexecuting: %r
T)�stdin�stdoutZ
preexec_fnZ	close_fds�stderr)"r)r#rZcompressobjr�join�list�itemsrr�helpers�verboser�re�sub�strip�sys�
executable�shlexrr �os�devnullr�environ�socketZ
socketpair�dup�filenor1r�ssubprocess�PopenZsendall)Zssh_cmdr%�pythonr6Zoptionsr&r'r$r(ZrhostrrZoptdataZcontent2Zpyscript�argvZsshlZportlZpycmd�s1r3Zs1aZs1b�pr)r2r�connectUsV

<






rN)N)r?rBr<rErrZimportlib.util�
subprocessrHrArr!Zurllib.parserZsshuttle.helpersr:rrrr)rNrrrr�<module>s"

	4