JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/firewall/core/io/__pycache__/helper.cpython-39.opt-1.pyc

a

	�	i2�@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__��;/usr/lib/python3.9/site-packages/firewall/core/io/helper.pyr:szHelper.__init__cCs.d|_d|_d|_d|_d|_|jdd�=dSr)rrrrrrrr"r"r#�cleanupCszHelper.cleanupcCs(ddg}||vr$ttjd||f��dS)NZipv4Zipv6z'%s' not in '%s')r
rZINVALID_IPV)rZipvZipvsr"r"r#�	check_ipvKs

�zHelper.check_ipvcCsv|dkr,|D]}t|d�t|d�qnF|dkrr|�d�sNttjd|��t|�dd��dkrrttjd|��dS)	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�itemZ
all_configZall_io_objectsrr"r"r#�
_check_configQs
��zHelper._check_config)
�__name__�
__module__�__qualname__ZIMPORT_EXPORT_STRUCTUREZDBUS_SIGNATUREZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSrr$r%r/�
__classcell__r"r"r r#r%s(���	rc@seZdZdd�ZdS)�helper_ContentHandlercCs>t�|||�|j�||�|dkr�d|vr8|d|j_d|vr\|j�|d�|d|j_d|vr�|d�d�s�tt	j
d|d��t|d�dd��dkr�tt	j
d	|d��|d|j_
nz|d
kr�np|dkr�nf|dk�r:t|d�t|d
�|d|d
f}||jjv�r$|jj�|�nt�d|d|d
�dS)Nrrrrr'r(rr&r)rrrrz#Port '%s/%s' already set, ignoring.)r�startElementr.Zparser_check_element_attrsrr%rr*r
rr+r,r-rr	r
r�appendrZwarning)rr�attrs�entryr"r"r#r5bsF��
�
�z"helper_ContentHandler.startElementN)r0r1r2r5r"r"r"r#r4asr4c	Cst�}|�d�s ttjd|��|dd�|_|�|j�||_||_|�	t
j�rVdnd|_|j|_
t|�}t��}|�|�d||f}t|d��n}t�d�}|�|�z|�|�Wn:tjy�}z ttjd|����WYd}~n
d}~00Wd�n1�s
0Y~~|S)	Nz.xmlz'%s' is missing .xml suffix���FT�%s/%s�rbznot a valid helper file: %s)r�endswithr
rZINVALID_NAMErZ
check_name�filename�pathr*r�
ETC_FIREWALLDZbuiltin�defaultr4�saxZmake_parserZsetContentHandler�openZInputSourceZ
setByteStream�parseZSAXParseExceptionZINVALID_HELPERZgetException)	r=r>r�handler�parserr�f�source�msgr"r"r#r�s:
�


��:rc

CsL|r|n|j}|jr$d||jf}nd||jf}tj�|�r�zt�|d|�Wn2ty�}zt�	d||�WYd}~n
d}~00tj�
|�}|�tj
�r�tj�|�s�tj�tj
�s�t�tj
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|	dd��|�d��q�|�d
�|�d�|��|��~dS)Nr:z	%s/%s.xmlz%s.oldzBackup of file '%s' failed: %si�ZwtzUTF-8)�mode�encodingrrrrr�
z  rrrrr&)rr) r>r=r�os�exists�shutil�copy2�	Exceptionr�error�dirnamer*rr?�mkdir�iorBrZ
startDocumentrrrr5ZignorableWhitespacerZ
charactersZ
endElementrrZ
simpleElementZendDocument�close)
rr>�_pathrrH�dirpathrFrDr7rr"r"r#r�s\$













r)N)�__all__Zxml.saxrArLrTrNZfirewallrZfirewall.core.io.io_objectrrrr	r
Zfirewall.core.loggerrrZfirewall.errorsr
rr4rrr"r"r"r#�<module>s<#
Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg