MINI MINI MANI MO

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

ó
dߨ[c%@skdddddddddd	d
ddd
ddddddddddddddddddd d!d"d#d$g%Zd%d&lZd%d&lZd%d&lZd%d&lZd%d&lZd%d&lZd%d&lZd%d&lZd%d'l	m
Z
d%d(lmZd%d)l
mZmZmZejd*kZd+„Zd,„Zd-d.„Zd/„Zd0„Zd1„Zd2„Zd3„Zd4„Zd5„Zd6„Zd7„Zd8„Zd9„Z d:„Z!d;„Z"d<„Z#d=„Z$d>„Z%d?„Z&d@„Z'dA„Z(dB„Z)dC„Z*dD„Z+dE„Z,dF„Z-dG„Z.dH„Z/dI„Z0dJ„Z1dK„Z2dL„Z3dM„Z4dN„Z5dO„Z6d&S(PtPY2t	getPortIDtgetPortRangetportStrtgetServiceNametcheckIPtcheckIP6tcheckIPnMaskt
checkIP6nMaskt
checkProtocoltcheckInterfacetcheckUINT32tfirewalld_is_activettempFiletreadfilet	writefiletenable_ip_forwardingtget_nf_conntrack_helper_settingtset_nf_conntrack_helper_settingtget_nf_conntrack_helperstget_nf_nat_helperst
check_portt
check_addresstcheck_single_addresst	check_mactuniqifytppid_of_pidtmax_zone_name_lent	checkUsertcheckUidtcheckCommandtcheckContexttjoinArgst	splitArgstb2utu2bt
u2b_if_py2iÿÿÿÿN(tlog(trunProg(tFIREWALLD_TEMPDIRtFIREWALLD_PIDFILEtCOMMANDSt3cCst|tƒr|}nd|r-|jƒ}nyt|ƒ}Wn<tk
r{ytj|ƒ}Wq|tjk
rwdSXnX|dkrŒdS|S(sÎ Check and Get port id from port string or port id using socket.getservbyname

    @param port port string or port id
    @return Port id if valid, -1 if port can not be found and -2 if port is too big
    iÿÿÿÿiÿÿiþÿÿÿ(t
isinstancetinttstript
ValueErrortsockett
getservbynameterror(tportt_id((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR.s	
	c	Cs>t|tƒs|jƒr>t|ƒ}|dkr:|fS|S|jdƒ}t|ƒdkrð|djƒrð|djƒrðt|dƒ}t|dƒ}|dkrð|dkrð||krÍ||fS||krã||fS|fSqðng}xtt|ƒddƒD]÷}tdj|| ƒƒ}dj||ƒ}t|ƒdkrÑt|ƒ}|dkr|dkr||kr™|j||fƒqÎ||kr»|j||fƒqÎ|j|fƒqq|dkr|j|fƒ|t|ƒkrPqqqWt|ƒdkr dSt|ƒdkr6dS|dS(sI Get port range for port range string or single port id

    @param ports an integer or port string or port range string
    @return Array containing start and end port id for a valid range or -1 if port can not be found and -2 if port is too big for integer input or -1 for invalid ranges or None if the range is ambiguous.
    it-iiiÿÿÿÿN(
R+R,tisdigitRtsplittlentrangetjointappendtNone(tportstid1tsplitstid2tmatchedtitport2((s6/usr/lib/python2.7/site-packages/firewall/functions.pyREsH2


t:cCsr|dkrdSt|ƒ}t|tƒr;|dkr;dSt|ƒdkrUd|Sd|d||dfSdS(s Create port and port range string

    @param port port or port range int or [int, int]
    @param delimiter of the output string for port ranges, default ':'
    @return Port or port range string, empty string if port isn't specified, None if port or port range is not valid
    tiis%ss%s%s%sN(RR+R,R;R7(R2t	delimitert_range((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR{scCs8ytjt|ƒ|ƒ}Wntjk
r3dSX|S(sÞ Check and Get service name from port and proto string combination using socket.getservbyport

    @param port string or id
    @param protocol string
    @return Service name if port and protocol are valid, else None
    N(R/t
getservbyportR,R1R;(R2tprototname((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRs
cCs3ytjtj|ƒWntjk
r.tSXtS(sl Check IPv4 address.
    
    @param ip address string
    @return True if address is valid, else False
    (R/t	inet_ptontAF_INETR1tFalsetTrue(tip((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR›s
cCs3ytjtj|ƒWntjk
r.tSXtS(sl Check IPv6 address.
    
    @param ip address string
    @return True if address is valid, else False
    (R/RJtAF_INET6R1RLRM(RN((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR¨s
cCsád|kra||jdƒ }||jdƒd}t|ƒdksZt|ƒdkrmtSn|}d}t|ƒs}tS|rÝd|kr™t|ƒSyt|ƒ}Wntk
r½tSX|dksÖ|dkrÝtSntS(Nt/it.ii (tindexR7RLR;RR,R.RM(RNtaddrtmaskRA((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRµs&$

cCsËd|kra||jdƒ }||jdƒd}t|ƒdksZt|ƒdkrmtSn|}d}t|ƒs}tS|rÇyt|ƒ}Wntk
r§tSX|dksÀ|dkrÇtSntS(NRPiii€(RRR7RLR;RR,R.RM(RNRSRTRA((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRÌs"$
cCsmyt|ƒ}Wn:tk
rLytj|ƒWqitjk
rHtSXnX|dkse|dkritStS(Niiÿ(R,R.R/tgetprotobynameR1RLRM(tprotocolRA((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR	ás
	cCsN|st|ƒdkrtSx*ddddgD]}||kr0tSq0WtS(s¬ Check interface string

    @param interface string
    @return True if interface is valid (maximum 16 chars and does not contain ' ', '/', '!', ':', '*'), else False
    it RPt!t*(R7RLRM(tifacetch((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR
ðscCsHyt|dƒ}Wntk
r'tSX|dkrD|dkrDtStS(NiIÿÿÿÿ(R,R.RLRM(tvaltx((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRs
cCsÂtjjtƒstSy(ttdƒ}|jƒ}WdQXWntk
rRtSXtjjd|ƒsmtSy,td|dƒ}|jƒ}WdQXWntk
r­tSXd|kr¾tStS(sv Check if firewalld is active

    @return True if there is a firewalld pid file and the pid is used by firewalld
    trNs/proc/%ss/proc/%s/cmdlinet	firewalld(	tostpathtexistsR(RLtopentreadlinet	ExceptionRM(tfdtpidtcmdline((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR
s"

c	CsyyKtjjtƒs(tjtdƒntjdddddtdtƒSWn'tk
rt}t	j
d|ƒ‚nXdS(	Niètmodetwttprefixstemp.tdirtdeletes#Failed to create temporary file: %s(R`RaRbR'tmkdirttempfiletNamedTemporaryFileRLReR%R1R;(tmsg((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR
*scCsWy&t|dƒ}|jƒSWdQXWn*tk
rR}tjd||fƒnXdS(NR^sFailed to read file "%s": %s(Rct	readlinesReR%R1R;(tfilenametfte((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR6scCs[y)t|dƒ}|j|ƒWdQXWn+tk
rV}tjd||fƒtSXtS(Ntws Failed to write to file "%s": %s(RctwriteReR%R1RLRM(RstlineRtRu((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR>scCs6|dkrtddƒS|dkr2tddƒStS(Ntipv4s/proc/sys/net/ipv4/ip_forwards1
tipv6s&/proc/sys/net/ipv6/conf/all/forwarding(RRL(tipv((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRGs


c	Cs¨tjƒd}d|}i}tjj|ƒr¤xottj|ƒƒD]U}|jdƒscqHn|jdƒd}tt	d|gƒ\}}|dkr¤qHn|jdƒr|jdƒdj
ƒ}|jdd	ƒ}|jd
dƒ}|j|gƒj
|ƒqHnx‹|jdƒD]z}|jd
ƒrd|kr|jdƒdj
ƒ}|jddƒ}|jdd	ƒ}|j|gƒj
|ƒqqWqHWn|S(Nis%/lib/modules/%s/kernel/net/netfilter/t
nf_conntrack_RQitmodinfotnf_conntrack_proto_t_R4s
nf-conntrack-RDs
salias:s-helper-RCisnfct-helper-(R`tunameRatisdirtsortedtlistdirt
startswithR6R&R)R-treplacet
setdefaultR:(	tkverRathelpersRstmoduletstatustretthelperRx((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRNs0
'c
Cs±tjƒd}i}x”d|d|d|gD]w}tjj|ƒr2x\ttj|ƒƒD]B}|jdƒs{q`n|jdƒd}tt	d|gƒ\}}|dkr¼q`n|jd	ƒr'|jdƒdj
ƒ}|jd
dƒ}|jdd
ƒ}|j|gƒj
|ƒq`nd}xr|jdƒD]a}	|	jdƒr=d|	kr=|jdd
ƒ}|jd
dƒ}|j|gƒj
|ƒq=q=Wq`Wq2q2W|S(Nis%/lib/modules/%s/kernel/net/netfilter/s*/lib/modules/%s/kernel/net/ipv4/netfilter/s*/lib/modules/%s/kernel/net/ipv6/netfilter/tnf_nat_RQiR}t
nf_nat_proto_RR4snf-nat-RDs
sdescription:s
NAT helper(R`R€RaRR‚RƒR„R6R&R)R-R…R†R:R;(
R‡RˆRaRsR‰RŠR‹RŒtaliasRx((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRls4
+cCs>yttdƒdƒSWntk
r9tjdƒdSXdS(Ns+/proc/sys/net/netfilter/nf_conntrack_helperis3Failed to get and parse nf_conntrack_helper setting(R,RReR%twarning(((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRŒs


cCstd|rdndƒS(Ns+/proc/sys/net/netfilter/nf_conntrack_helpers1
s0
(R(tflag((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR“scCsøt|ƒ}|dksV|dksV|dksVt|ƒdkrô|d|dkrô|dkrvtjd|ƒnz|dkr–tjd|ƒnZ|dkr¶tjd|ƒn:t|ƒdkrð|d|dkrðtjd	|ƒntStS(
Niþÿÿÿiÿÿÿÿiiis'%s': port > 65535s'%s': port is invalids'%s': port is ambiguouss'%s': range start >= end(RR;R7R%tdebug2RLRM(R2RF((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR—s$&&cCs4|dkrt|ƒS|dkr,t|ƒStSdS(NRyRz(RRRL(R{tsource((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR¦s


cCs4|dkrt|ƒS|dkr,t|ƒStSdS(NRyRz(RRRL(R{R“((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR®s


cCsgt|ƒdkrcx"dD]}||dkrtSqWx%dD]}||tjkr>tSq>WtStS(NiiiiiiRCiiiiiii	i
i
iii(iiiii(iiiiiii	i
ii
ii(R7RLtstringt	hexdigitsRM(tmacRA((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR¶s

cCs7g}x*|D]"}||kr
|j|ƒq
q
W|S(N(R:(t_listtoutputR]((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRÂs

cCsVy=tjd|ƒ}t|jƒdjƒƒ}|jƒWntk
rQdSX|S(s Get parent for pid sps -o ppid -h -p %d 2>/dev/nulliN(R`tpopenR,RrR-tcloseReR;(RgRt((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRÊs
cCs=ddlm}ttt|jƒƒƒ}d|tdƒS(s©
    Netfilter limits length of chain to (currently) 28 chars.
    The longest chain we create is FWDI_<zone>_allow,
    which leaves 28 - 11 = 17 chars for <zone>.
    iÿÿÿÿ(t	SHORTCUTSit__allow(tfirewall.core.baseR›tmaxtmapR7tvalues(R›tlongest_shortcut((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRÔsc	Cstt|ƒdks-t|ƒtjdƒkr1tSx<|D]4}|tjkr8|tjkr8|dkr8tSq8WtS(NitSC_LOGIN_NAME_MAXRQR4Rt$(RQR4RR£(R7R`tsysconfRLR”t
ascii_letterstdigitsRM(tusertc((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRÞs-
cCsWt|tƒr7yt|ƒ}Wq7tk
r3tSXn|dkrS|dkrStStS(NiiiiI€iÿÿÿ(R+tstrR,R.RLRM(tuid((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRès
cCsjt|ƒdks$t|ƒdkr(tSx'dddgD]}||kr8tSq8W|ddkrftStS(Niit|s
tiRP(R7RLRM(tcommandR[((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRòs$cCs›|jdƒ}t|ƒd
kr%tS|ddkrM|dddkrMtS|ddd	kretS|d
ddkr}tSt|dƒdkr—tStS(NRCiiitrootiþÿÿÿt_uit_rit_ti(ii(R6R7RLRM(tcontextR>((s6/usr/lib/python2.7/site-packages/firewall/functions.pyRüs$cCsDdttƒkr)djd„|DƒƒSdjd„|DƒƒSdS(NtquoteRWcss|]}tj|ƒVqdS(N(tshlexR³(t.0ta((s6/usr/lib/python2.7/site-packages/firewall/functions.pys	<genexpr>scss|]}tj|ƒVqdS(N(tpipesR³(RµR¶((s6/usr/lib/python2.7/site-packages/firewall/functions.pys	<genexpr>s(RlR´R9(targs((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR scCsNtr=t|tƒr=t|ƒ}tj|ƒ}tt|ƒStj|ƒSdS(N(RR+tunicodeR#R´R6RŸR"(t_stringR>((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR!s

cCs#t|tƒr|jddƒS|S(s bytes to unicode sUTF-8R…(R+tbytestdecode(Rº((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR"scCs#t|tƒs|jddƒS|S(s unicode to bytes sUTF-8R…(R+R»tencode(Rº((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR##scCs)tr%t|tƒr%|jddƒS|S(s" unicode to bytes only if Python 2sUTF-8R…(RR+R¹R½(Rº((s6/usr/lib/python2.7/site-packages/firewall/functions.pyR$)s(7t__all__R/R`tos.pathR´R·R”tsysRotfirewall.core.loggerR%tfirewall.core.progR&tfirewall.configR'R(R)tversionRRRRRRRRRR	R
RRR
RRRRRRRRRRRRRRRRRRR R!R"R#R$(((s6/usr/lib/python2.7/site-packages/firewall/functions.pyt<module>sp					6		
	
					
								 								
	
	
	
	
						

OHA YOOOO