관리-도구
편집 파일: helper.cpython-39.pyc
a �������g2����������������������@���s����g�d��Z�ddlmZ�ddlZddlZddlZddlmZ�ddlm Z m Z mZmZm Z �ddlmZ�ddlmZ�ddlmZ�G�dd ��d e �ZG�d d��de �Zdd ��Zddd�ZdS�))�Helper� helper_reader� helper_writer�����N)�config)� IO_Object�IO_Object_ContentHandler�IO_Object_XMLGenerator� check_port�check_tcpudp)�log)�errors)� FirewallErrorc�����������������������sv���e�Zd�ZdddddddgffZdZd d gZdddgd �Zg�d�ddgd�Z��fdd�Zdd��Z dd��Z dd��Z���ZS�)r���)�version��)�shortr���)�descriptionr���)�familyr���)�moduler����ports)r���r���z(sssssa(ss))�-�.Nr���)r���r����helper)�namer���r����port�protocol)r���r���c��������������������s6���t�t|������d|�_d|�_d|�_d|�_d|�_g�|�_d�S��Nr���) �superr����__init__r���r���r���r���r���r�����self�� __class__���;/usr/lib/python3.9/site-packages/firewall/core/io/helper.pyr���:���s����zHelper.__init__c�����������������C���s.���d|�_�d|�_d|�_d|�_d|�_|�jd�d��=�d�S�r���)r���r���r���r���r���r���r���r"���r"���r#����cleanupC���s����zHelper.cleanupc�����������������C���s(���ddg}||vr$t�tjd||f���d�S�)NZipv4Zipv6z'%s' not in '%s')r ���r���ZINVALID_IPV)r���ZipvZipvsr"���r"���r#���� check_ipvK���s ���� �zHelper.check_ipvc�����������������C���sv���|dkr,|D�]}t�|d���t|d���qnF|dkrr|�d�sNttjd|���t|�dd��dk�rrttjd|���d�S�) Nr���r�������r���� nf_conntrack_�('%s' does not start with 'nf_conntrack_'r����Module name '%s' too short)r ���r ���� startswithr ���r����INVALID_MODULE�len�replace)r���r����itemZ all_configZall_io_objectsr���r"���r"���r#���� _check_configQ���s���� ��zHelper._check_config) �__name__� __module__�__qualname__ZIMPORT_EXPORT_STRUCTUREZDBUS_SIGNATUREZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSr���r$���r%���r/���� __classcell__r"���r"���r ���r#���r���%���s(������ r���c�������������������@���s���e�Zd�Zdd��ZdS�)�helper_ContentHandlerc�����������������C���s>��t��|�||��|�j�||��|dkr�d|v�r8|d�|�j_d|v�r\|�j�|d���|d�|�j_d|v�r�|d��d�s�tt j d|d����t|d��dd��dk�r�tt j d |d����|d�|�j_ nz|d kr�np|dkr�nf|dk�r:t|d���t|d ���|d�|d �f}||�jjv�r$|�jj�|��nt�d|d�|d ���d�S�)Nr���r���r���r���r'���r(���r���r&���r)���r���r���r���r���z#Port '%s/%s' already set, ignoring.)r����startElementr.���Zparser_check_element_attrsr���r%���r���r*���r ���r���r+���r,���r-���r���r ���r ���r����appendr���Zwarning)r���r����attrs�entryr"���r"���r#���r5���b���sF������ � �z"helper_ContentHandler.startElementN)r0���r1���r2���r5���r"���r"���r"���r#���r4���a���s���r4���c����������� ������C���s��t���}|��d�s ttjd|����|�d�d��|_|�|j��|�|_||_|� t j�rVdnd|_|j|_ t|�}t���}|�|��d||�f�}t|d��n}t�d��}|�|��z|�|��W�n:�tjy��}�z ttjd|������W�Y�d�}~n d�}~0�0�W�d�����n1��s 0����Y��~~|S�) Nz.xmlz'%s' is missing .xml suffix���FT�%s/%s�rbznot a valid helper file: %s)r����endswithr ���r���ZINVALID_NAMEr���Z check_name�filename�pathr*���r���� ETC_FIREWALLDZbuiltin�defaultr4����saxZmake_parserZsetContentHandler�openZInputSourceZ setByteStream�parseZSAXParseExceptionZINVALID_HELPERZgetException) r=���r>���r����handler�parserr����f�source�msgr"���r"���r#���r�������s:���� � ��:r���c����������� ��� ���C���sL��|r|n|�j�}|�jr$d||�jf�}nd||�jf�}tj��|�r�zt�|d|���W�n2�ty��}�zt� d||��W�Y�d�}~n d�}~0�0�tj�� |�}|�tj �r�tj��|�s�tj��tj �s�t�tj d��t�|d��tj|ddd�}t|�}|����i�}|�j|d <�|�j�r|�jd k�r|�j|d<�|�j�r<|�jd k�r<|�j|d<�|�d |��|�d��|�j�r�|�jd k�r�|�d��|�di���|�|�j��|�d��|�d��|�j�r�|�jd k�r�|�d��|�di���|�|�j��|�d��|�d��|�jD�]4} |�d��|�d| d�| d�d���|�d���q�|�d ��|�d��|����|����~d�S�)Nr:���z %s/%s.xmlz%s.oldzBackup of file '%s' failed: %si���ZwtzUTF-8)�mode�encodingr���r���r���r���r���� z r���r���r���r���r&���)r���r���) r>���r=���r����os�exists�shutil�copy2� Exceptionr����error�dirnamer*���r���r?����mkdir�iorB���r���Z startDocumentr���r���r���r5���ZignorableWhitespacer���Z charactersZ endElementr���r���Z simpleElementZendDocument�close) r���r>����_pathr���rH����dirpathrF���rD���r7���r���r"���r"���r#���r�������s\����$ r���)N)�__all__Zxml.saxrA���rL���rT���rN���Zfirewallr���Zfirewall.core.io.io_objectr���r���r���r ���r ���Zfirewall.core.loggerr���r���Zfirewall.errorsr ���r���r4���r���r���r"���r"���r"���r#����<module>���s���<#