Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ³Y„j³ ã@s¾dddgZddljZddlZddlZddlZddlmZddlm Z ddl m Z m Z m Z mZmZmZddlmZdd lmZdd lmZGd d„de ƒZGd d „d e ƒZdd„Zddd„ZdS)ÚHelperÚ helper_readerÚ helper_writeréN)Úconfig)Ú u2b_if_py2)ÚPY2Ú IO_ObjectÚIO_Object_ContentHandlerÚIO_Object_XMLGeneratorÚ check_portÚ check_tcpudp)Úlog)Úerrors)Ú FirewallErrorcs€eZdZddddddd gffZdZd d gZd d dgd œZd ddgddgdœZ‡fdd„Zdd„Z dd„Z dd„Z dd„Z ‡Z S)!rÚversionÚÚshortÚ descriptionÚfamilyÚmoduleÚportsz (sssssa(ss))ú-Ú.N)rrÚhelperÚnameÚportÚprotocol)rrcs6tt|ƒjƒd|_d|_d|_d|_d|_g|_dS)Nr) ÚsuperrÚ__init__rrrrrr)Úself)Ú __class__©ú/usr/lib/python3.6/helper.pyr;szHelper.__init__cCs.d|_d|_d|_d|_d|_|jdd…=dS)Nr)rrrrrr)rr!r!r"ÚcleanupDs zHelper.cleanupcCsRt|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_dd„|jDƒ|_dS)z» HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.cSs g|]\}}t|ƒt|ƒf‘qSr!)r)Ú.0ZpoZprr!r!r"ú Usz)Helper.encode_strings..N)rrrrrrr)rr!r!r"Úencode_stringsLs      zHelper.encode_stringscCs(ddg}||kr$ttjd||fƒ‚dS)NZipv4Zipv6z'%s' not in '%s')rrZ INVALID_IPV)rZipvZipvsr!r!r"Ú check_ipvWszHelper.check_ipvcCsz|dkr0xl|D]}t|dƒt|dƒqWnF|dkrv|jdƒsRttjd|ƒ‚t|jddƒƒdkrvttjd|ƒ‚dS) NrrérÚ nf_conntrack_z('%s' does not start with 'nf_conntrack_'rzModule name '%s' too short)r r Ú startswithrrÚINVALID_MODULEÚlenÚreplace)rrÚitemZ all_configrr!r!r"Ú _check_config]s    zHelper._check_config)rr)rr)rr)rr)rr)rr)Ú__name__Ú __module__Ú __qualname__ZIMPORT_EXPORT_STRUCTUREZDBUS_SIGNATUREZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSrr#r&r'r/Ú __classcell__r!r!)r r"r&s$     c@seZdZdd„ZdS)Úhelper_ContentHandlercCs>tj|||ƒ|jj||ƒ|dkrÀd|kr8|d|j_d|kr\|jj|dƒ|d|j_d|kr¾|djdƒs†tt j d|dƒ‚t |dj ddƒƒdkr²tt j d |dƒ‚|d|j_ nz|d krÊnp|d krÔnf|d k�r:t|d ƒt|d ƒ|d |d f}||jjk�r$|jjj|ƒntjd|d |d ƒdS)Nrrrrr)z('%s' does not start with 'nf_conntrack_'rr(zModule name '%s' too shortrrrrz#Port '%s/%s' already set, ignoring.)r Ú startElementr.Zparser_check_element_attrsrr'rr*rrr+r,r-rr r rÚappendr Zwarning)rrÚattrsÚentryr!r!r"r5ns>      z"helper_ContentHandler.startElementN)r0r1r2r5r!r!r!r"r4msr4c Cstƒ}|jdƒs ttjd|ƒ‚|dd …|_|j|jƒ||_||_|j t j ƒrVdnd|_ |j |_ t|ƒ}tjƒ}|j|ƒd||f}t|dƒ�b}tjdƒ}|j|ƒy|j|ƒWn8tjk rð}zttjd|jƒƒ‚WYdd}~XnXWdQRX~~t�r|jƒ|S) Nz.xmlz'%s' is missing .xml suffixéFTz%s/%sÚrbznot a valid helper file: %séüÿÿÿ)rÚendswithrrZ INVALID_NAMErZ check_nameÚfilenameÚpathr*rÚ ETC_FIREWALLDZbuiltinÚdefaultr4ÚsaxZ make_parserZsetContentHandlerÚopenZ InputSourceZ setByteStreamÚparseZSAXParseExceptionZINVALID_HELPERZ getExceptionrr&) r=r>rÚhandlerÚparserrÚfÚsourceÚmsgr!r!r"r�s8        (c CsP|r|n|j}|jr$d||jf}nd||jf}tjj|ƒr„ytj|d|ƒWn0tk r‚}ztj d||ƒWYdd}~XnXtjj |ƒ}|j t j ƒrÒtjj|ƒ rÒtjjt j ƒsÆtjt j dƒtj|dƒtj|ddd�}t|ƒ}|jƒi}|j|d <|j�r|jd k�r|j|d <|j�r<|jd k�r<|j|d <|jd |ƒ|jdƒ|j�rœ|jd k�rœ|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒ|j�ræ|jd k�ræ|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒx>|jD]4} |jdƒ|jd| d| ddœƒ|jdƒ�qîW|jd ƒ|jdƒ|jƒ|jƒ~dS)Nz%s/%sz %s/%s.xmlz%s.oldzBackup of file '%s' failed: %sièZwtzUTF-8)ÚmodeÚencodingrrrrrÚ z rrrrr()rr) r>r=rÚosÚexistsÚshutilZcopy2Ú Exceptionr ÚerrorÚdirnamer*rr?ÚmkdirÚiorBr Z startDocumentrrrr5ZignorableWhitespacerZ charactersZ endElementrrZ simpleElementZ endDocumentÚclose) rr>Ú_pathrrHÚdirpathrFrDr7rr!r!r"r®s\                       )N)Ú__all__Zxml.saxrArLrSrNZfirewallrZfirewall.functionsrZfirewall.core.io.io_objectrrr r r r Zfirewall.core.loggerr rZfirewall.errorsrrr4rrr!r!r!r"Ús        G#