MINI MINI MANI MO

Path : /usr/lib/python2.7/site-packages/firewall/core/io/
File Upload :
Current File : //usr/lib/python2.7/site-packages/firewall/core/io/helper.pyo

ó
dߨ[c@sdddgZddljZddlZddlZddlZddlmZddlm	Z	ddl
mZmZm
Z
mZmZmZddlmZdd	lmZdd
lmZdefd„ƒYZde
fd
„ƒYZd„Zdd„ZdS(tHelpert
helper_readert
helper_writeriÿÿÿÿN(tconfig(t
u2b_if_py2(tPY2t	IO_ObjecttIO_Object_ContentHandlertIO_Object_XMLGeneratort
check_porttcheck_tcpudp(tlog(terrors(t
FirewallErrorcBs©eZdddddddgffZdZdd	gZidd6dd6dgd
6Zidddgd
6dd
gd6Zd„Zd„Z	d„Z
d„Zd„ZRS(tversionttshorttdescriptiontfamilytmoduletportss(sssssa(ss))t-t.thelpertnametporttprotocolcCsMtt|ƒjƒd|_d|_d|_d|_d|_g|_dS(NR(	tsuperRt__init__RRRRRR(tself((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyR;s					cCs8d|_d|_d|_d|_d|_|j2dS(NR(RRRRRR(R((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pytcleanupDs					cCs•t|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_g|jD]$\}}t|ƒt|ƒf^qd|_dS(s» 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.N(RRRRRRR(Rtpotpr((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pytencode_stringsLscCs;ddg}||kr7ttjd||fƒ‚ndS(Ntipv4tipv6s'%s' not in '%s'(R
RtINVALID_IPV(Rtipvtipvs((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyt	check_ipvWs	cCs®|dkr<x›|D]"}t|dƒt|dƒqWnn|dkrª|jdƒspttjd|ƒ‚nt|jddƒƒdkrªttjd|ƒ‚qªndS(	NRiiRt
nf_conntrack_s('%s' does not start with 'nf_conntrack_'RsModule name '%s' too short(R	R
t
startswithR
RtINVALID_MODULEtlentreplace(RRtitemR((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyt
_check_config]s
	(sversionR(sshortR(sdescriptionR(sfamilyR(smoduleR(RRN(
t__name__t
__module__tIMPORT_EXPORT_STRUCTUREtDBUS_SIGNATUREtADDITIONAL_ALNUM_CHARStNonetPARSER_REQUIRED_ELEMENT_ATTRStPARSER_OPTIONAL_ELEMENT_ATTRSRRR!R'R.(((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyR&s(
					thelper_ContentHandlercBseZd„ZRS(cCs¹tj|||ƒ|jj||ƒ|dkrd|krQ|d|j_nd|kr„|jj|dƒ|d|j_nd|krµ|djdƒsÀtt	j
d|dƒ‚nt|djddƒƒdkrÿtt	j
d	|dƒ‚n|d|j_
qµn |d
kr$n‘|dkr3n‚|dkrµt|dƒt|d
ƒ|d|d
f}||jjkr—|jjj|ƒqµtjd|d|d
ƒndS(NRRRRR(s('%s' does not start with 'nf_conntrack_'RisModule name '%s' too shortRRRRs#Port '%s/%s' already set, ignoring.(RtstartElementR-tparser_check_element_attrsRR'RR)R
RR*R+R,RR	R
RtappendRtwarning(RRtattrstentry((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyR8ns>"	(R/R0R8(((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyR7msc	Cs=tƒ}|jdƒs1ttjd|ƒ‚n|d |_|j|jƒ||_||_|j	t
jƒrxtnt
|_|j|_t|ƒ}tjƒ}|j|ƒd||f}t|dƒM}y|j|ƒWn2tjk
r}ttjd|jƒƒ‚nXWdQX~~tr9|jƒn|S(Ns.xmls'%s' is missing .xml suffixiüÿÿÿs%s/%strsnot a valid helper file: %s(RtendswithR
RtINVALID_NAMERt
check_nametfilenametpathR)Rt
ETC_FIREWALLDtFalsetTruetbuiltintdefaultR7tsaxtmake_parsertsetContentHandlertopentparsetSAXParseExceptiontINVALID_HELPERtgetExceptionRR!(RBRCRthandlertparserRtftmsg((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyRs4		
		!
	
c
Cs|r|n|j}|jr4d||jf}nd||jf}tjj|ƒrytj|d|ƒWqtk
r™}tj	d||ƒqXntjj
|ƒ}|jtj
ƒrtjj|ƒrtjjtj
ƒsÿtjtj
dƒntj|dƒntj|dddd	ƒ}t|ƒ}|jƒi}|j|d
<|jr~|jdkr~|j|d<n|jr¦|jdkr¦|j|d
<n|jd|ƒ|jdƒ|jr%|jdkr%|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒn|jr‡|jdkr‡|jdƒ|jdiƒ|j|jƒ|jdƒ|jdƒnxQ|jD]F}	|jdƒ|jdi|	dd6|	dd6ƒ|jdƒq‘W|jdƒ|jdƒ|jƒ|jƒ~dS(Ns%s/%ss	%s/%s.xmls%s.oldsBackup of file '%s' failed: %siètmodetwttencodingsUTF-8RRRRRs
s  RRRiiR( RCRBRtostexiststshutiltcopy2t	ExceptionRterrortdirnameR)RRDtmkdirtioRLRt
startDocumentRRRR8tignorableWhitespaceRt
characterst
endElementRRt
simpleElementtendDocumenttclose(
RRCt_pathRRTtdirpathRSRQR<R((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyR¬s\	%







&



(t__all__txml.saxRIRXR`RZtfirewallRtfirewall.functionsRtfirewall.core.io.io_objectRRRRR	R
tfirewall.core.loggerRRtfirewall.errorsR
RR7RR4R(((s;/usr/lib/python2.7/site-packages/firewall/core/io/helper.pyt<module>s.G#	

OHA YOOOO