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__/helper.cpython-310.pyc
o

bhAb>�@s�gd�ZddlmZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZGdd	�d	e	�ZGd
d�de
�Zdd
�Zddd�ZdS))�Helper�
helper_reader�
helper_writer�N)�config)�	IO_Object�IO_Object_ContentHandler�IO_Object_XMLGenerator�
check_port�check_tcpudp)�log)�errors)�
FirewallErrorcsveZdZdddddddgffZdZd	d
gZdddgd
�Zgd�ddgd�Z�fdd�Zdd�Z	dd�Z
dd�Z�ZS)r)�version�)�shortr)�descriptionr)�familyr)�moduler�ports)rrz(sssssa(ss))�-�.Nr)rr�helper)�namerr�port�protocol)rrcs6tt|���d|_d|_d|_d|_d|_g|_dS�Nr)	�superr�__init__rrrrrr��self��	__class__��9/usr/lib/python3/dist-packages/firewall/core/io/helper.pyr:s
zHelper.__init__cCs.d|_d|_d|_d|_d|_|jdd�=dSr)rrrrrrrr"r"r#�cleanupCszHelper.cleanupcCs(ddg}||vrttjd||f��dS)N�ipv4�ipv6z'%s' not in '%s')r
r�INVALID_IPV)r�ipv�ipvsr"r"r#�	check_ipvKs
��zHelper.check_ipvcCs||dkr|D]}t|d�t|d�qdS|dkr:|�d�s(ttjd|��t|�dd��dkr<ttjd|��dSdS)	Nrr�r�
nf_conntrack_�('%s' does not start with 'nf_conntrack_'r�Module name '%s' too short)r	r
�
startswithr
r�INVALID_MODULE�len�replace)rr�item�
all_config�all_io_objectsrr"r"r#�
_check_configQs"�
���zHelper._check_config)
�__name__�
__module__�__qualname__�IMPORT_EXPORT_STRUCTURE�DBUS_SIGNATURE�ADDITIONAL_ALNUM_CHARS�PARSER_REQUIRED_ELEMENT_ATTRS�PARSER_OPTIONAL_ELEMENT_ATTRSrr$r*r6�
__classcell__r"r"r r#r%s*���	rc@seZdZdd�ZdS)�helper_ContentHandlercCsJt�|||�|j�||�|dkrcd|vr|d|j_d|vr.|j�|d�|d|j_d|vra|d�d�sCtt	j
d|d��t|d�dd��dkrYtt	j
d	|d��|d|j_
dSdS|d
kridS|dkrodS|dkr�t|d�t|d
�|d|d
f}||jjvr�|jj�|�dSt�d|d|d
�dSdS)Nrrrrr,r-rr+r.rrrrz#Port '%s/%s' already set, ignoring.)r�startElementr3�parser_check_element_attrsrr*rr/r
rr0r1r2rr	r
r�appendr�warning)rr�attrs�entryr"r"r#rAbsJ��
����z"helper_ContentHandler.startElementN)r7r8r9rAr"r"r"r#r@asr@c	Cst�}|�d�sttjd|��|dd�|_|�|j�||_||_|�	t
j�r+dnd|_|j|_
t|�}t��}|�|�d||f}t|d��4}t�d�}|�|�z|�|�Wntjys}z
ttjd|����d}~wwWd�~~|S1s�wY~~|S)	Nz.xmlz'%s' is missing .xml suffix���FT�%s/%s�rbznot a valid helper file: %s)r�endswithr
r�INVALID_NAMEr�
check_name�filename�pathr/r�
ETC_FIREWALLD�builtin�defaultr@�sax�make_parser�setContentHandler�open�InputSource�
setByteStream�parse�SAXParseException�INVALID_HELPER�getException)	rMrNr�handler�parserr�f�source�msgr"r"r#r�sJ
�


�����
�	�	rc

Cs:|r|n|j}|jrd||jf}nd||jf}tj�|�rCz
t�|d|�WntyB}z
t�	d||�WYd}~nd}~wwtj�
|�}|�tj
�ritj�|�sitj�tj
�sct�tj
d�t�|d�tj|ddd�}t|�}|��i}|j|d	<|jr�|jd
kr�|j|d<|jr�|jd
kr�|j|d<|�d
|�|�d�|jr�|jd
kr�|�d�|�di�|�|j�|�d�|�d�|jr�|jd
kr�|�d�|�di�|�|j�|�d�|�d�|jD]}	|�d�|�d|	d|	dd��|�d�q�|�d
�|�d�|��|��~dS)NrHz	%s/%s.xmlz%s.oldzBackup of file '%s' failed: %si��wtzUTF-8)�mode�encodingrrrrr�
z  rrrrr+)rr) rNrMr�os�exists�shutil�copy2�	Exceptionr�error�dirnamer/rrO�mkdir�iorUr�
startDocumentrrrrA�ignorableWhitespacer�
characters�
endElementrr�
simpleElement�endDocument�close)
rrN�_pathrr`�dirpathr^r\rErr"r"r#r�s`��













r)N)�__all__�xml.saxrRrermrg�firewallr�firewall.core.io.io_objectrrrr	r
�firewall.core.loggerrr�firewall.errorsr
rr@rrr"r"r"r#�<module>s<#