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: //usr/lib/python3.6/site-packages/sshuttle/__pycache__/hostwatch.cpython-36.opt-1.pyc
3

��^��@s^ddlZddlZddlZddlZddlZddlZddlZddlZddlZ	ddl
jZddl
mZm
Z
mZmZd+ZdZejjd�ZdadaiZiZyeejd�ZWnBek
r�ej�dd	�\ZZed
e�ej ddd�ZYnXd
d�Z!dd�Z"dd�Z#dd�Z$dd�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd �Z*d!d"�Z+d#d$�Z,d%d&�Z-d'd(�Z.d)d*�Z/dS),�N)�log�debug1�debug2�debug3�<��z~/.sshuttle.hostsT�wb�zwarning: %s
z sh -c 'while read x; do :; done'icCstjd|�S)Nz\d+\.\d+\.\d+\.\d+$)�re�match)�s�r�/usr/lib/python3.6/hostwatch.py�_is_ipsrcCs�dttj�f}z`t|d�}x0ttj��D] \}}|jd||fjd��q*W|j	�tj
|d�tj|t�Wdytj|�Wnt
k
r�YnXXdS)Nz	%s.%d.tmpr	z%s,%s
�ASCIIi�)�	CACHEFILE�os�getpid�open�sorted�	hostnames�items�write�encode�close�chmod�rename�unlink�
BaseException)Ztmpname�f�name�iprrr�write_host_cache#s
r#c
Cs�ytt�}Wn:tk
rFtj�dd�\}}|jtjkr@dS�YnXxd|D]\}|j�jd�}t	|�dkrN|\}}t
jdd|�j�}t
jdd|�j�}|rN|rNt||�qNWdS)Nr
�,z[^-\w\.]�-z[^0-9.]�)
rr�IOError�sys�exc_info�errno�ENOENT�strip�split�lenr�sub�
found_host)r �_�e�line�wordsr!r"rrr�read_host_cache3s
r5cCs�tjdd|�}tjdd|�}|jd�s8|jd�s8|dkr<dS||krNt||�tj|�}||kr�|t|<td||f�tjj	d	||f�t
�dS)
Nz\..*r&z[^-\w\.]r1z127.z255.�	localhostzFound: %s: %s
z%s,%s
)rr/�
startswithr0r�getrr(�stdoutrr#)r!r"�hostnameZoldiprrrr0Fs

r0cCs�td�x|td�D]p}tjdd|�}|j�j�}|s6q|d}|dd�}t|�rtd||f�x|D]}t|�t	||�qhWqWdS)Nz	 > hosts
z
/etc/hostsz#.*r&r�z<    %s %r
)
rrrr/r,r-rr�
check_hostr0)r3r4r"�names�nrrr�_check_etc_hostsXs
r?cCsdtd|�y8tj|�}td|d�t|d�t|d|�Wntjtfk
r^YnXdS)Nz > rev: %s
z<    %s
r)r�socketZ
gethostbyaddrrr<r0Zherror�UnicodeError)r"�rrrr�
_check_revdnshs
rCcCsXtd|�y,tj|�}td|�t|�t||�Wntjtfk
rRYnXdS)Nz > dns: %s
z<    %s
)rr@Z
gethostbynamerr<r0ZgaierrorrA)r:r"rrr�
_check_dnsss
rDcCs�td�tjddd�}ddg}y0tj|tjt|d�}|jj�j	d�}|j
�Wn8tk
r�tj
�dd	�\}}td
||f�dSXx(tjd|�D]}td|�t|�q�WdS)
Nz > netstat
�PATH�C)rE�LC_ALLZnetstatz-n)r9�stderr�envrr
z%r failed: %r
z\d+\.\d+\.\d+\.\d+z<    %s
)rr�environ�ssubprocess�Popen�PIPE�nullr9�read�decode�wait�OSErrorr(r)rr�findallrr<)rI�argv�pZcontentr1r2r"rrr�_check_netstat~s rVc
Cs�dStd|�tjddd�}dddd|g}y*tj|tjt|d	�}|jj	�}|j
�Wn<tk
r�tj
�dd
�\}}td||f�dadSX|j�x"|r�|j�j�}tjd
|�r�Pq�Wxb|�r$|j�j�}|s�tjd|�r�q�tjd|��r�P|j�}|dj�}td|�t|�q�Wxt|�r�|j�j�}tjd|��rL�q(|�sTP|j�}|dj�|dj�}	}td|	|f�t|�t|	��q(W|�r�dS)Nz > smb: %s
rErF)rErGZ	smbclientz-U�%z-L)r9rHrIr
z%r failed: %r
Fz	Server\s+z-+\s+-+zWorkgroup\s+Masterrz<    %s
z-+\s+r;z<    group(%s) -> %s
)�_smb_okrrrJrKrLrMrNr9�	readlinesrQrRr(r)r�reverse�popr,rrr-�lowerrr<�check_workgroup)
r:rIrTrU�linesr1r2r3r4�	workgrouprrr�
_check_smb�sZ
r`c
Cs2dStd|||f�tjddd�}dgdg|d|g}y*tj|tjt|d�}|jj	�}|j
�}Wn<tk
r�tj
�dd	�\}}	td
||	f�dadSX|r�td||f�dSxn|D]f}
tjd
|
�}|r�|j�}|d|dj�}
}td||
f�|�rtt|
�q�t||
�t|�q�WdS)Nz
 > n%d%d: %s
rErF)rErGZ	nmblookupz-Mz--)r9rHrIr
z%r failed: %r
Fz%r returned %d
z"(\d+\.\d+\.\d+\.\d+) (\w+)<\w\w>\nrr;z<    %s -> %s
)�_nmb_okrrrJrKrLrMrNr9rYrQrRr(r)rrr�groupsr\r�_enqueuer`r0r<)r:Zis_workgroupZ	is_masterrIrTrUr^�rvr1r2r3�m�gr"r!rrr�
_check_nmb�s<


rgcCs:t|�rtt|�n
tt|�tt|�tt|dd�dS)NF)rrcrCrDr`rg)r:rrrr<�s


r<cCs tt|dd�tt|dd�dS)NTF)rcrg)r:rrrr]sr]cGs"||f}tj|�dkrdt|<dS)Nr)�queuer8)�op�args�trrrrcsrccCs@tjtjj�ggg|�\}}}|r<tjtjj�d�}|s<dSdS)NiFT)�selectr(�stdin�filenorrO)ZtimeoutrBr1�brrr�_stdin_still_oksrpc	Cstjdkrdt_ndt_tdtj��x|D]}t|�q.W|r|t�tt	�tt
�td�ttj��t
d�t
d�x�tj�}x�ttj��D]r\}}|\}}td�s�Pt}|t
kr�t}|||kr�tj�t|<||�ytjj�Wq�tk
�rPYq�Xq�Wtd	�s~Pq~WdS)
Nr
zHH: zhostwatch: z*Starting hostwatch with Python version %s
r6r_r%rr;)�helpers�verboseZ	logprefixr�platformZpython_versionr<r5rcr?rVr@Zgethostnamer]�time�listrhrrp�	POLL_TIME�NETSTAT_POLL_TIMEr(r9�flushr')	Z
seed_hostsZ
auto_hosts�hZnowrkZlast_polledrirjZmaxtimerrr�hw_mainsB

rzi�)0rtr@rrlr*rr(rs�
subprocessrKZsshuttle.helpersrqrrrrrvrw�path�
expanduserrrarXrrhr�devnullrNr'r)r1r2�popenrr#r5r0r?rCrDrVr`rgr<r]rcrprzrrrr�<module>sL
?%