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±Uã@sdZdddgZddljZddlZddlZddlZddlmZddl m Z m Z m Z m Z mZmZmZmZmZddlmZmZmZmZdd lmZmZdd lmZmZmZmZdd l m!Z!dd lm"Z"dd l#m$Z$Gdd„deƒZ%Gdd„deƒZ&dd„Z'ddd„Z(dS)z$ipset io XML handler, reader, writerÚIPSetÚ ipset_readerÚ ipset_writeréN)Úconfig) ÚcheckIPÚcheckIP6Ú checkIPnMaskÚ checkIP6nMaskÚ u2b_if_py2Ú check_macÚ check_portÚcheckInterfaceÚ checkProtocol)ÚPY2Ú IO_ObjectÚIO_Object_ContentHandlerÚIO_Object_XMLGenerator)Ú IPSET_TYPESÚIPSET_CREATE_OPTIONS)Úcheck_icmp_nameÚcheck_icmp_type_codeÚcheck_icmpv6_nameÚcheck_icmpv6_type_code)Úlog)Úerrors)Ú FirewallErrorcsœeZdZddd d!dddifddgffZdZd d d d gZd d dgdgd dœZdgdgdœZ‡fdd„Zdd„Z dd„Z e dd„ƒZ dd„Z ‡fdd„Z‡ZS)"rÚversionÚÚshortÚ descriptionÚtypeÚoptionsÚentriesz (ssssa{ss}as)Ú_ú-ú:Ú.NÚname)rrÚipsetÚoptionÚentryÚvalue)r(r)cs<tt|ƒjƒd|_d|_d|_d|_g|_i|_d|_ dS)NrF) ÚsuperrÚ__init__rrrr r"r!Úapplied)Úself)Ú __class__©ú/usr/lib/python3.6/ipset.pyr-CszIPSet.__init__cCs8d|_d|_d|_d|_|jdd…=|jjƒd|_dS)NrF)rrrr r"r!Úclearr.)r/r1r1r2ÚcleanupMs  z IPSet.cleanupcCs\t|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_dd„|jjƒDƒ|_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.cSsi|]\}}t|ƒt|ƒ“qSr1)r )Ú.0ÚkÚvr1r1r2ú ^sz(IPSet.encode_strings..cSsg|] }t|ƒ‘qSr1)r )r5Úer1r1r2ú `sz(IPSet.encode_strings..N)r rrrr r!Úitemsr")r/r1r1r2Úencode_stringsVs    zIPSet.encode_stringscCsrd}d|kr|ddkrd}|jdƒs6ttjd|ƒ‚|dd…jdƒ}|jdƒ}t|ƒt|ƒksnt|ƒd kr‚ttjd ||fƒ‚�xètt|ƒƒD�]Ö}||}||}|d k�rÒd |koÀ|dk�rh|d krâttjd |||fƒ‚|jd ƒ} t| ƒdk�rttjd||||fƒ‚x¼| D]J} |dk�r2t| ƒ �sH|dk�rt | ƒ �rttjd| |||fƒ‚�qWnh|dk�rª|dk�r”ttjd||||fƒ‚|dk�r¤t } nt} nt } | |ƒ�sjttjd||||fƒ‚q’|dk�r@d |k�r¸|jd ƒ} t| ƒdk�rttjd||||fƒ‚|dk�r0t| dƒ �sJ|dk�rft | dƒ �rfttjd| d|||fƒ‚|dk�r€t | d ƒ �sš|dk�r>t | d ƒ �r>ttjd| d |||fƒ‚n†|j dƒ�rú|dk�oÞ|dk�oÞ|dk�súttjd||||fƒ‚|dk�rt |ƒ �s&|dk�rjt |ƒ �rjttjd||||fƒ‚q’|dk�rvt |ƒ �s`|dk�rjttjd||fƒ‚q’|dk�rld|k�rL|jdƒ} t| ƒdk�r²ttjd|ƒ‚| ddk�rP|dk�rÞttjd||fƒ‚t| d ƒ �rd| d k�rttjd| d |fƒ‚n6| d jdƒ\} } t| | ƒ�sJttjd| d |fƒ‚�qj| dd2k�rì|dk�r|ttjd||fƒ‚t| d ƒ �r´d| d k�r´ttjd"| d |fƒ‚n6| d jdƒ\} } t| | ƒ�sJttjd"| d |fƒ‚n^| dd3k�r$t| dƒ �r$ttjd'| d|fƒ‚n&t| d ƒ�sjttjd(| d |fƒ‚nt|ƒ�sjttjd)||fƒ‚q’|d*k�r |jd+ƒ�r¾yt|d,ƒ}Wn*tk �rºttjd-||fƒ‚YnXn8y t|ƒ}Wn*tk �rôttjd-||fƒ‚YnX|dk�s |d.k�rjttjd-||fƒ‚q’|d/k�rZt|ƒ �sDt|ƒd0k�rjttjd1||fƒ‚q’ttjd|ƒ‚q’WdS)4NZipv4ÚfamilyÚinet6Zipv6zhash:zipset type '%s' not usableéú,éz)entry '%s' does not match ipset type '%s'Zipr$z invalid address '%s' in '%s'[%d]éz.invalid address range '%s' in '%s' for %s (%s)z(invalid address '%s' in '%s' for %s (%s)z0.0.0.0rZnetz/0zhash:net,ifaceZmacz00:00:00:00:00:00z invalid mac address '%s' in '%s'Zportr%zinvalid port '%s'Zicmpz(invalid protocol for family '%s' in '%s'ú/zinvalid icmp type '%s' in '%s'Úicmpv6ú ipv6-icmpz invalid icmpv6 type '%s' in '%s'ÚtcpÚsctpÚudpÚudplitezinvalid protocol '%s' in '%s'zinvalid port '%s'in '%s'zinvalid port '%s' in '%s'ZmarkZ0xézinvalid mark '%s' in '%s'lÿÿZifaceézinvalid interface '%s' in '%s')rDrE)rFrGrHrI)Ú startswithrrÚ INVALID_IPSETÚsplitÚlenZ INVALID_ENTRYÚrangerrrr Úendswithr rrrrrr ÚintÚ ValueErrorr )r*r!Z ipset_typer=Úflagsr;ÚiÚflagÚitemZsplitsZ_splitZip_checkZ_typeÚ_codeZint_valr1r1r2Ú check_entrybsT                                  zIPSet.check_entrycCsâ|dkr |tkr ttjd|ƒ‚|dkrÞx´|jƒD]¨}|tkrNttjd|ƒ‚|dkr¶yt||ƒ}Wn,tk r’ttj d|||fƒ‚YnX|d krÚttj d |||fƒ‚q2|d kr2||dkr2ttj ||ƒ‚q2WdS)Nr z'%s' is not valid ipset typer!zipset invalid option '%s'ÚtimeoutÚhashsizeÚmaxelemz)Option '%s': Value '%s' is not an integerrz#Option '%s': Value '%s' is negativer=Úinetr>)rZr[r\)r]r>) rrrÚ INVALID_TYPEÚkeysrrMrRrSÚ INVALID_VALUEÚINVALID_FAMILY)r/rrWZ all_configÚkeyÚ int_valuer1r1r2Ú _check_config&s2   zIPSet._check_configcsrd|dkr6|dddkr6t|dƒdkr6ttjƒ‚x&|dD]}tj||d|dƒq@Wtt|ƒj|ƒdS)NrZéÚ0r?ré)rOrrZIPSET_WITH_TIMEOUTrrYr,Ú import_config)r/rr*)r0r1r2rhAs  zIPSet.import_config)rr)rr)rr)r r)Ú__name__Ú __module__Ú __qualname__ZIMPORT_EXPORT_STRUCTUREZDBUS_SIGNATUREZADDITIONAL_ALNUM_CHARSZPARSER_REQUIRED_ELEMENT_ATTRSZPARSER_OPTIONAL_ELEMENT_ATTRSr-r4r<Ú staticmethodrYrdrhÚ __classcell__r1r1)r0r2r,s,       Ec@seZdZdd„Zdd„ZdS)Úipset_ContentHandlerc Csîtj|||ƒ|jj||ƒ|dkrpd|krX|dtkrLttjd|dƒ‚|d|j_d|krl|d|j_ �nz|dkr|�nn|dkrˆ�nb|dk�rêd}d |kr¦|d }|d dkrÆttj d|d ƒ‚|jjdkoÜ|d dk�rüttj d|d |jjfƒ‚|d dk�r&| �r&ttj d|d ƒ‚|d dk�r’y t |ƒ}Wn.t k �rnttj d|d |fƒ‚YnX|dk�r’ttj d|d |fƒ‚|d d k�r¶|dk�r¶ttj|ƒ‚|d |jjk�rÚ||jj|d <ntjd|d ƒdS)Nr(r z%srrrr)rr+r'r=rZr[r\zUnknown option '%s'zhash:macz%Unsupported option '%s' for type '%s'z&Missing mandatory value of option '%s'z)Option '%s': Value '%s' is not an integerrz#Option '%s': Value '%s' is negativer]r>z Option %s already set, ignoring.)r=rZr[r\)r=)r=rZr[r\)rZr[r\)r]r>)rÚ startElementrWZparser_check_element_attrsrrrr^r rZINVALID_OPTIONrRrSr`rar!rÚwarning)r/r'Úattrsr+rcr1r1r2roLsd      z!ipset_ContentHandler.startElementcCs(tj||ƒ|dkr$|jjj|jƒdS)Nr*)rÚ endElementrWr"ÚappendZ_element)r/r'r1r1r2rrƒs zipset_ContentHandler.endElementN)rirjrkrorrr1r1r1r2rnKs7rnc %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~~d |jk�rF|jd d k�rFt|jƒd k�rFtjd |jƒ|jdd…=d } tƒ} x¸| t|jƒk�r|j| | k�r’tjd |j| ƒ|jj| ƒnry|j |j| |j|j!ƒWn<tk �rê} ztjd| ƒ|jj| ƒWYdd} ~ XnX| j"|j| ƒ| d7} �qRW~ t#�r|j$ƒ|S)Nz.xmlz'%s' is missing .xml suffixreFTz%s/%sÚrbznot a valid ipset file: %srZrfrz6ipset '%s': timeout option is set, entries are ignoredzEntry %s already set, ignoring.z %s, ignoring.rAéüÿÿÿ)%rrQrrZ INVALID_NAMEr'Z check_nameÚfilenameÚpathrLrÚ ETC_FIREWALLDZbuiltinÚdefaultrnÚsaxZ make_parserZsetContentHandlerÚopenZ InputSourceZ setByteStreamÚparseZSAXParseExceptionrMZ getExceptionr!rOr"rrpÚsetÚpoprYr Úaddrr<) rvrwr(ÚhandlerÚparserr'ÚfÚsourceÚmsgrUZ entries_setr9r1r1r2rˆs^        (  c Cs�|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ƒd |ji}|j�r|jd k�r|j|d <|jd |ƒ|jd ƒ|j�rz|jd k�rz|jdƒ|jdiƒ|j|jƒ|jdƒ|jd ƒ|j�rÄ|jd k�rÄ|jdƒ|jdiƒ|j|jƒ|jdƒ|jd ƒxZ|jjƒD]L\} } |jdƒ| d k�r|jd| | dœƒn|jdd| iƒ|jd ƒ�qÐWxD|jD]:} |jdƒ|jdiƒ|j| ƒ|jdƒ|jd ƒ�q(W|jd ƒ|jd ƒ|jƒ|j ƒ~dS)Nz%s/%sz %s/%s.xmlz%s.oldzBackup of file '%s' failed: %sièZwtzUTF-8)ÚmodeÚencodingr rrr(Ú z rrr))r'r+r'r*)!rwrvr'ÚosÚexistsÚshutilZcopy2Ú ExceptionrÚerrorÚdirnamerLrrxÚmkdirÚior{rZ startDocumentr rroZignorableWhitespacerZ charactersrrrr!r;Z simpleElementr"Z endDocumentÚclose) r(rwÚ_pathr'r„Údirpathr‚r€rqrbr+r*r1r1r2r½sf                           )N))Ú__doc__Ú__all__Zxml.saxrzrˆr�rŠZfirewallrZfirewall.functionsrrrr r r r r rZfirewall.core.io.io_objectrrrrZfirewall.core.ipsetrrZfirewall.core.icmprrrrZfirewall.core.loggerrrZfirewall.errorsrrrnrrr1r1r1r2Ús&   ,   !=5