Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/ufw/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/ufw/__pycache__/parser.cpython-310.pyc
o

�Fa�|�@s�ddlZddlZddlZddlmZddlmZGdd�d�ZGdd�de�ZGdd	�d	e�Z	Gd
d�de�Z
Gdd
�d
e�ZGdd�de�ZGdd�de�Z
Gdd�de�ZGdd�de�ZGdd�d�ZGdd�d�ZdS)�N��UFWError)�debugc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�
UFWCommandz"Generic class for parser commands.cCs,||_g|_||jvr|j�|�||_dS�N)�command�types�append�type)�selfr
r�r�,/usr/lib/python3/dist-packages/ufw/parser.py�__init__.s


zUFWCommand.__init__cCs&t|�dkr	t��t|d���}|S)N�r)�len�
ValueError�UFWParserResponse�lower�r�argv�rrrr
�parse5szUFWCommand.parsecCstd��)Nz!UFWCommand.help: need to overrider)r�argsrrr
�help=szUFWCommand.helpN)�__name__�
__module__�__qualname__�__doc__rrrrrrr
r,s
rc@s0eZdZdZdd�Zdd�Zdd�Zee�ZdS)	�UFWCommandRulez#Class for parsing ufw rule commandscC�d}t�|||�dS)N�rule�rr�rrr
rrr
rC�zUFWCommandRule.__init__c 
Csd}d}d}d}d}d}d}d}	d}
d}t|�dkr)|d��dkr)|�|d�t|�dkr�|d��dkrkt|�dkrkd}|�|d�d}zt|d�}Wn
ty]|d}Ynw|durjtd	|�}
|
Sn;|d��d
kr�t|�dkr|t��|d}	|	dks�|	d
kr�td�|	}t|��|d=|d=n
|d��dkr�d}	|d=|d}|dkr�|dkr�|dkr�|dkr�t��t|�}|dkr�t��d}|dkr�|d��dks�|d��dkr�|d��}|dk�r|ddk�r|d��dk�s|d��dk�r|d��}|d=t|�}d}|dk�r[|�	d�dk�s&|�	d�dk�r[td�}|d��dk�r@|d��dk�r@t|��|dk�sN|d��dk�rRt|��|d=t|�}d}d}|�rz|dk�rz|d��dk�sw|d��dk�rzd}n|dk�r�|d��dk�s�|d��dk�r�d}|dk�r�||��}
||=t|�}d|v�r�td�}t|��d|v�r�td�}t|��d}d|v�r�|�
d�}|t|�dk�r�td �}t|��||d}d!|v�r�td"�}t|��||d=||=t|�}|dk�s|d#k�rt��|}|
dk�r|d$|
7}tjj
|dd|tj�|�d%�}|�r+||_n|	dk�rAz|�|	�Wn	t�y@�w|dk�r�tj�|d��rsz
tj�|d�Wnt�yrd&}|d|_|�|dd'�Ynw|jdk�r�ztj�|d�\}}Wnt�y�}zt|��d}~wwt�d(|��s�d)|v�s�d*|v�r�td+�}t|��|}z|�|�|�|d'�d&}W�nct�y�td,�}t|��w�nQ|dddk�r�td-�}t|��d.|v�rd/|v�rd|v�rd|v�rtd0�}t|��gd1�}|�	d/�dk�sN|�	d.�dk�sN|�	d2�dk�sN|�	d3�dk�sN|�	d�dk�sN|�	d�dk�sN|�	d4�dk�sN|�	d4�dk�rV|�	d2�dk�rVtd5�}t|��d}d}|D�]�}|ddk�ry|||v�rytd6�||}t|��|d2k�r�|d|k�r�z|�||d�W�n[t�y��wtd7�}t|��|dk�s�|dk�r�|d|k�r�z"|dk�r�|�d||d�n|dk�r�|�d||d�W�nt�y��wtd8�|}t|��|d.k�r1|d|k�r)z&||d��}|dk�r	d9}d}n
tj�|d:��rd;}nd<}|�|�Wn	t�y%�wd=}n�td>�}t|��|d/k�rx|d|k�rpz&||d��}|dk�rPd9}d}n
tj�|d:��r[d;}nd<}|�|�Wn	t�yl�wd'}n}td?�}t|��|d3k�s�|d4k�r�|d|k�r�|dk�r�td@�|}t|��||d}|d4k�r�|d=k�r�||_n'||_n#t�d(|��s�d)|v�s�d*|v�r�td+�}t|��|d=k�r�|}n|}z|�||�Wnt�y��wtdA�}t|��|d7}�q\|dk�r|dk�rd&}n&|dk�r|dk�r||k�rtdB�}t|��|dk�r|}n|dk�r&|}|dk�s0|dk�r�d}|dk�rPztj�|�}Wnt�yOtdC�}t|��w|dk�r�|dk�s_|dk�rxztj�|�}WnDt�ywtdC�}t|��wztj�|�}Wnt�y�tdC�}t|��w|dk�s�||k�r�|}n|dk�r�ntdD�}t|��|jdk�r�|�|�n|dk�r�|j|k�r�tdE�|j}t|��|�r�|jtjj v�r�|d&k�r�t!dF|j�d<}|�"|�t|�}
|j#|
j$dG<||
j$d<||
j$dH<|
S)IN��anyFrr �deleterTz	delete-%d�insert��0z-1z#Cannot insert rule at position '%s'�prepend����allow�deny�reject�limit��in�out�onzInvalid interface clause��logzlog-allzOption 'log' not allowed herez!Option 'log-all' not allowed here�commentz*Option 'comment' missing required argument�'zComment may not contain "'"�
�_)�	directionr6�both�dstz^\d([0-9,:]*\d+)*$�,�:zPort ranges must be numericzBad portzWrong number of arguments�from�tozNeed 'to' or 'from' clause)�protor?r@�port�appr1r2rArBrCzImproper rule syntaxzInvalid token '%s'zInvalid 'proto' clausezInvalid '%s' clause�	0.0.0.0/0�6�v6�v4�srczInvalid 'from' clausezInvalid 'to' clausezNeed 'from' or 'to' with '%s'zInvalid 'port' clausez%Mixed IP versions for 'from' and 'to'zCould not find protocolzProtocol mismatch (from/to)z,Protocol mismatch with specified protocol %sz*Adjusting iptype to 'v4' for protocol '%s'r
�iptype)%rr�remove�int�	Exceptionrrr9r�count�index�ufw�common�UFWRule�util�
hex_encode�set_position�applications�valid_profile_name�get_services_proto�dapp�set_port�parse_port_proto�re�match�set_protocol�
set_interface�
valid_address�set_src�set_dst�sapp�protocol�ipv4_only_protocolsr�verifyr
�data) rr�actionr r
�	from_type�to_type�from_service�
to_service�
insert_pos�logtyperJ�rule_numr�err_msg�nargs�rule_direction�
has_interface�log_idxr6�comment_idx�rule_actionrBrA�e�keys�i�loc�arg�faddr�saddr�tmprrr
rGsj���**$"








�
�

���

��
 

�

��

�

�
�


�



�
��
�
�


zUFWCommandRule.parsecCs�|j}|jdks
|jdkr�|jdks|jdkr�|jdkr�|jdkr�|jdkr�|jdkr�|jdkr�|jdkr<|d|j7}|j	dkrH|d|j	7}|j
dkrbd|j
vrZ|d|j
7}n|d|j
7}n|d|j7}|jdkru|d	|j7}|jdkr�|d
|�
�7}|S|jdkr�|d|j7}|jdkr�|d|j7}n|jdkr�|d|j7}|j	dkr�|d|j	7}d
D]_}|dkr�|j}|j}|j}d}n|j}|j}|j
}d}|dks�|dkr�d}|dks�|dks�|dk�r|d||f7}|dk�rd|v�r|d|7}q�|d|7}q�|dk�r|d|7}q�d|v�r1d|v�r1|jdk�r1|jdk�r1|d7}|jdk�rJ|j
dk�rJ|jdk�rJ|d|j7}|jdk�rX|d
|�
�7}|S)zGet command string for rulerDz::/0r%r$r2z %s� z '%s'z/%sz
 comment '%s'z	 in on %sz
 out on %s)rHr<rHr?r@z %s %sz	 app '%s'z app %sz port %sz to z from z to anyz	 proto %s)rgr<rH�sportrb�interface_in�
interface_out�dportr:rmrXrcr6�get_comment)r�resrxryrBrC�dirrrr
�get_command�sv










2
�





�$zUFWCommandRule.get_commandN)rrrrrrr��staticmethodrrrr
rAsMrc@� eZdZdZdd�Zdd�ZdS)�UFWCommandRouteRulez)Class for parsing ufw route rule commandscCst�||�d|_dS)N�route)rrr
)rrrrr
rs
zUFWCommandRouteRule.__init__c	Csh|ddksJ�d|vr3|�d�}d}t|�|kr3zt||d�td�}t|��ty2Ynwd}d}d}d�|�}d|vrrd	|vrrd
}|�d�|�d
�krTd}||�|�d}|d|�|��||�|�d
d�}nt�d|�s�t�d|�s�d|vs�d|vr�td�}t|��|}d|d<t	�
||�}d|jvr�d|jd_|r�|r�|jd�
||�|S)Nrr�r&r$rz9'route delete NUM' unsupported. Use 'delete NUM' instead.r~z in on z out on r2r1r0r4z
 (in|out) on z app (in|out) z in z out z'Invalid interface clause for route ruler T)rNrrKr9rr�joinr[�searchrrrf�forwardr^)	rr�idxro�	rule_argv�	interface�strip�srrrr
rsH
�	
*
�
zUFWCommandRouteRule.parseN�rrrrrrrrrr
r��r�c@r�)�
UFWCommandAppz*Class for parsing ufw application commandscCr)NrCr!r"rrr
rZr#zUFWCommandApp.__init__cCsJd}d}d}|ddkrt��|d=t|�}|d��}|dks$|dkrO|dkr9|dd	kr9d
}|�d	�t|�}|dkr@t��t|d��d�}|rO|d
7}|dkrZ|dkrZt��|dkr�|dkret��|d��dkrpd}n$|d��dkr{d}n|d��dkr�d}n|d��dkr�d}nt��t|�}|j|jd<||jd<|S)zParse applications command.r$FrrC�info�updater4rz	--add-newTr0z[']z	-with-new�list�defaultr,�
default-allowr-�default-denyr.�default-reject�skipzdefault-skipr
�name)	rrrrJ�strr�rr
rf)rrr�rg�addnewrprrrr
r^sH

zUFWCommandApp.parseNr�rrrr
r�Xr�r�c@r�)�UFWCommandBasicz$Class for parsing ufw basic commandscCr)N�basicr!r"rrr
r�r#zUFWCommandBasic.__init__cCst|�dkr	t��t�||�S)Nr)rrrr)rrrrr
r�szUFWCommandBasic.parseNr�rrrr
r��r�r�c@r�)�UFWCommandDefaultz&Class for parsing ufw default commandscCr)Nr�r!r"rrr
r�r#zUFWCommandDefault.__init__cCsJt|�dkr	t��d}d}t|�dkrw|d��dkrF|d��dkrF|d��dkrF|d��dkrF|d��dkrF|d��dkrFt��|d���d	�rRd}n%|d���d
�r^d}n|d��dksn|d��dkrqd}n|d��}|d��dkr�d
}n|d��dkr�d}n|d��dkr�d}nt��|d|7}t|�S)Nr0r$�incoming�input�routedr��output�outgoingr1r2rr-r�r,r�r.r�z-%s)rrr�
startswithr)rrrgr:rrr
r�s8 zUFWCommandDefault.parseNr�rrrr
r��r�r�c@r�)�UFWCommandLoggingz&Class for parsing ufw logging commandscCr)N�loggingr!r"rrr
r�r#zUFWCommandLogging.__init__cCs�d}t|�dkrt��|d��dkrd}t|�S|d��dksA|d��dksA|d��dksA|d��d	ksA|d��d
krYd}|d��dkrU|d|d��7}t|�St��)
Nr$r0r�offzlogging-offr3�low�medium�high�fullz
logging-onr9�rrrr�rrrgrrr
r�s
 � �zUFWCommandLogging.parseNr�rrrr
r��r�r�c@r�)�UFWCommandStatusz%Class for parsing ufw status commandscCr)N�statusr!r"rrr
r�r#zUFWCommandStatus.__init__cCslt�||�}t|�dkrd|_|St|�dkr4|d��dkr$d|_|S|d��dkr1d|_|St��|S)Nrr��verbosezstatus-verbose�numberedzstatus-numbered)rrrrgrrrrrr
r�s���zUFWCommandStatus.parseNr�rrrr
r��r�r�c@r�)�UFWCommandShowz#Class for parsing ufw show commandscCr)N�showr!r"rrr
r�r#zUFWCommandShow.__init__cCs�d}t|�dkrt��|d��dkrd}t|�S|d��dkr'd}t|�S|d��dkr5d}t|�S|d��d	krCd
}t|�S|d��dkrQd}t|�S|d��d
kr_d}t|�S|d��dkrmd}t|�S|d��dkr{d}t|�St��)Nr$r�rawzshow-rawzbefore-ruleszshow-beforez
user-rulesz	show-userzafter-rulesz
show-afterz
logging-ruleszshow-logging�builtinsz
show-builtins�	listeningzshow-listening�addedz
show-addedr�r�rrr
r�s8����
����zUFWCommandShow.parseNr�rrrr
r��r�r�c@r�)rzClass for ufw parser responsecCs |��|_d|_d|_i|_dS)NF)rrg�dryrun�forcerf)rrgrrr
rs

zUFWParserResponse.__init__cCsPd|j}t|j���}|��|D]
}|d||j|f7}q|d7}t|�S)Nzaction='%s'z,%s='%s'�
)rgr�rfrw�sort�repr)rr�rwrxrrr
�__str__!s
zUFWParserResponse.__str__N)rrrrrr�rrrr
rsrc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�	UFWParserzClass for ufw parsercCs
i|_dSr)�commands)rrrr
r.s
zUFWParser.__init__cCsD|��t|j���vrt��|��t|j|���vrt��|��S)z=Return command if it is allowed, otherwise raise an exception)rr�r�rwr)rr
�cmdrrr
�allowed_command1s
zUFWParser.allowed_commandc
Csrd}t|�dkr|d��dkrd}|�|d�d}t|�dkr:|d��dks1|d��dkr:d}|�|d�d}d}|d��}t|�dkrk|t|j���vrk|d��t|j|���vrk|}|d��}n4|}t|j���D]$}||j|vr�t|j||t�r�t|j||d	�d
kr�qt|}nqt|dkr�d
}|�	||�}|j||}|�
|�}	||	_||	_|	S)z(Parse command. Returns a UFWParserActionFrz	--dry-runTz--forcez-fr$rr
r )
rrrJr�r�rw�
isinstancer�getattrr�rr�r�)
rrr�r�r�r
r}rxrg�responserrr
�
parse_command;sB�	
zUFWParser.parse_commandcCsz|jdus
|jdkrd|j}nd|j}|j|jvr!i|j|j<||j|jvr3td�|}t|��||j|j|<dS)z"Register a command with the parserNr$z%szCommand '%s' already exists)rr
r�r9r)r�c�keyrorrr
�register_commandis
zUFWParser.register_commandN)rrrrrr�r�r�rrrr
r�,s
.r�)r[�ufw.utilrO�ufw.applications�
ufw.commonrrrrr�r�r�r�r�r�r�rr�rrrr
�<module>s&$YA;. 

Spamworldpro Mini