HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/firewall/core/io/__pycache__/ifcfg.cpython-310.pyc
o

bhAb��@sJdZdgZddlZddlZddlZddlZddlmZGdd�de	�Z
dS)zifcfg file parser�ifcfg�N)�logc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)rcCsi|_g|_||_|��dS�N)�_config�_deleted�filename�clear)�selfr�r
�8/usr/lib/python3/dist-packages/firewall/core/io/ifcfg.py�__init__"szifcfg.__init__cCsi|_g|_dSr)rr�r	r
r
rr(s
zifcfg.clearcCs|j��dSr)rrr
r
r
r�cleanup,sz
ifcfg.cleanupcCs|j�|���Sr)r�get�strip)r	�keyr
r
rr/sz	ifcfg.getcCs4|��}|��|j|<||jvr|j�|�dSdSr)rrr�remove)r	r�value�_keyr
r
r�set2s

�z	ifcfg.setcCs8d}|j��D]\}}|r|d7}|d||f7}q|S)N��
z%s=%s)r�items)r	�srrr
r
r�__str__8sz
ifcfg.__str__c
Cs2|��zt|jd�}Wnty!}z	t�d|j|��d}~ww|D]n}|s*ni|��}t|�dks:|ddvr;q$dd�|�dd�D�}t|�d	krMq$t|d�d	krm|d�	d
�rm|d�
d
�rm|ddd�|d<|ddkrtq$|j�|d�dur�t�
d
|j|���q$|d|j|d<q$|��dS)N�rzFailed to load '%s': %s�r)�#�;cSsg|]}|���qSr
)r)�.0�xr
r
r�
<listcomp>Pszifcfg.read.<locals>.<listcomp>�=��"���rz%%s: Duplicate option definition: '%s')r�openr�	Exceptionr�errorr�len�split�
startswith�endswithrr�warning�close)r	�f�msg�line�pairr
r
r�readAs<����z
ifcfg.readc
Csdt|j�dkr	dSg}ztjddtj�|j�tj�|j�dd�}Wnt	y6}zt
�d|��d}~wwd}d}ztj
|jddd	�}Wn&t	yl}ztj�|j�r`t
�d
|j|f��d}WYd}~n�d}~ww|D]�}|sun�|�d�}t|�dkr�|s�|�d�d}qo|d
dkr�d}|�|�|�d�qo|�dd�}t|�dkr�d}|�|d�qo|d
��}	|d��}
t|
�dkr�|
�d�r�|
�d�r�|
dd�}
|	|v�r|	|jvr�|j|	|
kr�d}|�d|	|j|	f�d}n|	|jvr�d}n	d}|�|d�|�|	�qod}qot|j�d
k�r;|j��D]\}	}
|	|v�r)�q|�s.d}|�d|	|
f�d}�q|�rB|��|��|�sQt�|j�dStj�|j��r�zt�|jd|j�Wnt	�y�}zt�|j�td|j|f��d}~wwz
t�|j|j�Wnt	�y�}zt�|j�td|j|f��d}~wwt�|jd�dS)Nr�wtz%s.F)�mode�prefix�dir�deletez!Failed to open temporary file: %s�rtzUTF-8)r5�encodingzFailed to open '%s': %srTrrr"r#r$r%z%s=%s
z%s.bakzBackup of '%s' failed: %szFailed to create '%s': %si�)r)r�tempfile�NamedTemporaryFile�os�path�basenamer�dirnamer'rr(�ior&�existsr�writer*r+r,r�appendrr.r�name�shutil�copy2�IOError�move�chmod)r	�done�	temp_filer0�modified�emptyr/r1�prrr
r
rrC^s�
�����

�
��
�

����zifcfg.writeN)�__name__�
__module__�__qualname__rrrrrrr3rCr
r
r
rr!s	)�__doc__�__all__�os.pathr=rAr;rF�firewall.core.loggerr�objectrr
r
r
r�<module>s