__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
�

6m�g�|�� �SSKrSSKrSSKrSSKJr SSKJr "SS5r"SS\5r"SS	\5r	"S
S\5r
"SS
\5r"SS\5r"SS\5r
"SS\5r"SS\5r"SS5r"SS5rg)�N��UFWError)�debugc�*�\rSrSrSrSrSrSrSrg)�
UFWCommand�,z"Generic class for parser commands.c�~�X l/UlXR;aURRU5 Xlg�N)�command�types�append�type)�selfrrs   �,/usr/lib/python3/dist-packages/ufw/parser.py�__init__�UFWCommand.__init__.s/������
��z�z�!��J�J���d�#��	�c�p�[U5S:a
[5e[USR55nU$)N�r)�len�
ValueError�UFWParserResponse�lower�r�argv�rs   r�parse�UFWCommand.parse5s.���t�9�q�=��,���d�1�g�m�m�o�.���rc��[S5e)Nz!UFWCommand.help: need to overrider)r�argss  r�help�UFWCommand.help=s���:�;�;r)rrrN)	�__name__�
__module__�__qualname__�__firstlineno__�__doc__rrr!�__static_attributes__�rrrr,s��,���<rrc�:�\rSrSrSrSrSrSr\"\5rSr	g)�UFWCommandRule�Az#Class for parsing ufw rule commandsc�4�Sn[RXU5 g)N�rule�rr�rrrs   rr�UFWCommandRule.__init__C��������D��0rc	��SnSnSnSnSnSnSnSn	Sn
Sn[U5S:�a+USR5S:XaURUS5 [U5S:�a�USR5S:XaJ[U5S:�a;SnURUS5 Sn[US5nUb[S	U-5n
U
$O}USR5S
:XaJ[U5S:a
[
5eUSn	U	S:XdU	S
:Xa[S5U	-n[U5eUS	US	OUSR5S:XaSn	US	USnUS:waUS:waUS:waUS:wa
[
5e[U5nUS:a
[
5eSnUS:�aAUSR5S:XdUSR5S:XaUSR5nUS:�aXUSS:waOUSR5S:XdUSR5S:Xa!USR5nUS	[U5nSnUS:�a�URS5S:�dURS5S:�a|[S5nUSR5S:wa"USR5S:wa[U5eUS:dUSR5S:wa[U5eUS	[U5nSnSnU(a7US:�a1USR5S:XdUSR5S:XaSnO6US:�a0USR5S:XdUSR5S:XaSnUS:�a!UUR5n
UU	[U5nSU;a[S5n[U5eSU;a[S5n[U5eSnSU;aqURS5nU[U5S-
:Xa[S 5n[U5eUUS-nS!U;a[S"5n[
U5eUUS-	UU	[U5nUS:dUS#:�a
[
5eUnU
S:waUS$U
--
n[RRUSSU[RRU5S%9nU(aX�lOU	S:waUR!U	5 US:Xa�[R"R%US5(a#[RR'US5 UR(S:Xa�[RR-US5unn[.R0"S(U5(d$S)U;dS*U;a[S+5n[U5eUnUR3U5 UR+US'5 S&nGO6GO4US-S-S:wa[S-5n[U5eS.U;a(S/U;a"SU;aSU;a[S05n[U5e/S1QnURS/5S:�d�URS.5S:�d�URS25S:�d~URS35S:�diURS5S:�dTURS5S:�d?URS45S:�d*URS45S:�a+URS25S:�a[S55n[U5eSnSnUGH�nUS-S:wa%UUU;a[S65UU-n[U5eUS2:Xa9US-U:aUR3UUS-5 GO[[S75n[U5eUS:XdUS:XacUS-U:aAUS:XaUR5SUUS-5 GOUS:XaUR5SUUS-5 GO�[S85U-n[U5eUS.:Xa�US-U:aaUUS-R5nUS:XaS9nSnO*[RR7US:5(aS;nOS<nUR9U5 S=nGOf[S>5n[U5eUS/:XaUS-U:a`UUS-R5nUS:XaS9nSnO*[RR7US:5(aS;nOS<nUR;U5 S'nO�[S?5n[U5eUS3:XdUS4:Xa�US-U:a�US:Xa[S@5U-n[U5eUUS-nUS4:XaUS=:XaUUlOQUUlOI[.R0"S(U5(d-S)U;dS*U;a[S+5n[U5eUS=:XaUnOUnUR+UU5 O[SA5n[U5eUS-
nGM� US:Xa	US:XaS&nO8US:wa!US:waXV:wa[SB5n[U5eUS:waUnOUS:waUnUS:wdUS:wGaSnUS:wa [RR'U5nUS:wayUS:XdUS:Xa![RR'U5nOL[RR'U5nUS:XdUU:XaUnOUS:XaO[SD5n[U5eUR>S:XaUR3U5 O9US:wa3UR>U:wa#[SE5UR>-n[U5eU(aYUR>[RR@;a US&:Xa[CSFUR>-5 S<nUREU5 [U5n
URFU
RHSG'X=RHS'XMRHSH'U
$![a	 USnG
N�f=f![a ef=f![a% S&nUSUlUR+USS'5 GN�f=f![an[U5eSnAff=f![a [S,5n[U5ef=f![a ef=f![a ef=f![a ef=f![a ef=f![a ef=f![a [SC5n[U5ef=f![a [SC5n[U5ef=f![a [SC5n[U5ef=f)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 "'"�
�_)�	directionrF�both�dstz^\d([0-9,:]*\d+)*$�,�:zPort ranges must be numericzBad portzWrong number of arguments�from�tozNeed 'to' or 'from' clause)�protorOrP�port�apprArBrQrRrSzImproper 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�	ExceptionrrrIr�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�logtyperZ�rule_numr�err_msg�nargs�rule_direction�
has_interface�log_idxrF�comment_idx�rule_actionrRrQ�e�keys�i�loc�arg�faddr�saddr�tmps                                 rr�UFWCommandRule.parseGs����������	������
��
������t�9�q�=�T�!�W�]�]�_��6��K�K��Q�� ��t�9�q�=��A�w�}�}��(�*�s�4�y�1�}������D��G�$���%�"�4��7�|�H�
�'�)�+��*@�A�A��H�(��a�����H�,��t�9�q�=�$�,�&�!�!�W�
���$�
�d�(:�� E�F�!+�-�G�"�7�+�+���G���G��a�����I�-��
���G��!�W�F��W���6�!1�f��6H��W���,���D�	���1�9��,�����1�9�$�q�'�-�-�/�T�1��q�'�-�-�/�U�2�!�!�W�]�]�_�N��1�9��a��D��d�1�g�m�m�o��.E�.2�1�g�m�m�o��.F�!�!�W�]�]�_�N��Q����I�E��
��1�9�$�*�*�T�*�Q�.�$�*�*�U�2C�a�2G��2�3�G��A�w�}�}��$�&�4��7�=�=�?�e�+C��w�'�'��q�y�D��G�M�M�O�t�3��w�'�'��Q����I�E� �M����U�Q�Y�D��G�M�M�O�u�,D�,0��G�M�M�O�y�,H��G�
�Q�Y�D��G�M�M�O�u�4���7�=�=�?�i�7��G��Q�;��7�m�)�)�+�G��W�
���I�E��D�=��7�8�G��7�#�#�����;�<�G��7�#�#�������*�*�Y�/�K��c�$�i�!�m�+��H�I���w�'�'��;�q�=�)�G��g�~��;�<�� ��)�)��[��]�#��[�!���I�E��1�9���
��,�����b�=��3��=�(�K��z�z�!�!�+�u�e�,:�*-�(�(�*=�*=�g�*F�"�H��� �K�
�2�
�
��!�!�*�-��A�:����2�2�4��7�;�;�2��H�H�/�/��Q��8�
�y�y�B��&�$'�H�H�$=�$=�d�1�g�$F�M�T�5��x�x� 5�t�<�<��d�{�c�T�k�"#�$A�"B��&�w�/�/�!%�J�,��%�%�e�,��M�M�$��.�!�D��&�a�i�1�_��
!��3�4�G��7�#�#�
�4�
�D��$4��T�9I�
�$�
��4�5�G��7�#�#�I�D��z�z�$��!�#��z�z�&�!�A�%��z�z�'�"�Q�&��z�z�&�!�A�%��z�z�$��!�#��z�z�%� �1�$��z�z�%� �1�$��z�z�%� �1�$����G�)<�q�)@��2�3���w�'�'��A��C����q�5�A�:�$�q�'��"5�� 4�5��a��A�G�"�7�+�+��'�>���s�U�{�"� �-�-�d�1�Q�3�i�8�#$�$<�"=��&�w�/�/��D�[�C�5�L���s�U�{�"�"�d�{� $� 2� 2�4��a��c�� C�!$��� $� 2� 2�5�$�q��s�)� D��#$�$9�":�c�"B��&�w�/�/��F�]���s�U�{�"�$(��1��I�O�O�$5�E�$��~�(3��,1�	�#&�8�8�#9�#9�%��#E�#E�04�I�04�I� �L�L��/�$��
#$�$;�"<��&�w�/�/��D�[���s�U�{�"�$(��1��I�O�O�$5�E�$��~�(3��*/��#&�8�8�#9�#9�%��#E�#E�.2�G�.2�G� �L�L��/�$��
#$�$9�":��&�w�/�/��F�]�c�U�l���s�U�{��"�9�&'�(G�&H�),�'.�G�"*�7�"3�3�"�1�Q�3�i���%�<�"�e�|�,/��	�,/��	�!#���*?��!E�!E�"�c�z�S�C�Z�*+�,I�*J��&.�w�&7� 7�"�e�|�/2��-0�
�"� �M�M�#�s�3�#$�$;�"<��&�w�/�/��Q���W�\�E�!�g��&6����e�#��5�(8��%��C�D���w�'�'��e�#� ���E�!������|�r�1��E��R��,��H�H�7�7�
�C�E��r�!��E�>�U�b�[�0� #��� ;� ;�L� I��0�!�h�h�9�9�,�G����~��#�� #������"#�$A�"B��&�w�/�/��}�}��%��!�!�%�(��%��D�M�M�U�$:��J�K�!�]�]�,���w�'�'���}�}���� <� <�<��v�~��B��}�}�&�'���
�K�K����f�%��������v�����v�����x�����O!�%�!�!�W�F�%��l�
��
��!�2�!�D� $�Q��D�I��M�M�$�q�'�5�1�2��"�&�"�1�+�%��&�� �,��
�m�G�"�7�+�+�,��H )�"�!�"�� )�"�!�"��* )�"�!�"��, )�"�!�"��B )�"�!�"��8!�,� � 9�:�G�"�7�+�+�,��%�0�#$�$=�">��&�w�/�/�0��%�0�#$�$=�">��&�w�/�/�0�s��n�n�"n%�%o�2%o4�
p�p'�/p'�8Ap6�>Aq�q�%q#�r�8r+�n�n�n"�%+o�o�
o1�!o,�,o1�4!p�p$�'p3�6q�q�q �#!r�!r(�+!sc���URnURS:XdURS:XGaZURS:XdURS:XGa9URS:XGa(URS:XGaUR
S:XGaURS:Xa�URS:wa�URS:XaUSUR--
nURS:waUSUR--
nURS:wa6SUR;aUSUR--
nOGUSUR--
nO4USUR--
nURS:waUS	UR--
nURS:waUS
UR5--
nU$UR
S:waUSUR
--
nURS:waUSUR--
nO"URS:XaUSUR--
nURS:waUSUR--
nS
H�nUS:Xa'URnURnURnSnO&URnURnURnSnUS:XdUS:XaSnUS:wdUS:wdUS:wdMxUSU<SU<3-
nUS:waSU;a
USU--
nM�USU--
nM�US:wdM�USU--
nM� SU;a+SU;a%UR
S:XaURS:XaUS-
nURS:wa2URS:Xa"URS:XaUSUR--
nURS:waUS
UR5--
nU$)zGet command string for rulerTz::/0r5r4rBz %s� z '%s'z/%sz
 comment '%s'z	 in on %sz
 out on %s)rXrLrXrOrPz	 app '%s'z app %sz port %sz to z from z to anyz	 proto %s)rwrLrX�sportrr�interface_in�
interface_out�dportrJr}rhrsrF�get_comment)r�resr�r�rRrS�dirs       r�get_command�UFWCommandRule.get_command�s���h�h��
�E�E�[� �A�E�E�V�O�
�E�E�[� �A�E�E�V�O��7�7�e���6�6�R�<��>�>�R���?�?�b� ��7�7�e���{�{�e�#��u�q�{�{�*�*���y�y�B���u�q�y�y�(�(���v�v��|��!�&�&�=��7�Q�V�V�+�+�C��5�1�6�6�>�)�C��u�q�w�w��&���:�:��&��5�1�:�:�-�-�C��y�y�B��������8�8��d�
�_�~�~��#��{�Q�^�^�3�3�����"�$��|�a�o�o�5�5������%��u�q�{�{�*�*���y�y�B���u�q�y�y�(�(��#����:��%�%�C��7�7�D��&�&�C� �C��%�%�C��7�7�D��&�&�C��C��+�%�����C��%�<�4�5�=�C�2�I��s�C�0�0�C��b�y��#�:��;��#4�4�C��9�s�?�2�C�����z�D�0�0��/$�8�S� �X�S�%8��N�N�b�(�Q�_�_��-B��y� ���z�z�U�"�q�v�v��|����"���{�Q�Z�Z�/�/���y�y�B��������8�8���
rr)N)
r#r$r%r&r'rrr��staticmethodr(r)rrr+r+As$��-�1�~�@L�Z�{�+�Krr+c�$�\rSrSrSrSrSrSrg)�UFWCommandRouteRuleiz)Class for parsing ufw route rule commandsc�<�[RX5 SUlg)N�route)r+rr)rrs  rr�UFWCommandRouteRule.__init__s������.���	rc��USS:XdeSU;aIURS5nSn[U5U:�a'[XS-5 [S5n[	U5eSnSnSnSR
U5nSU;apS	U;ajS
nURS5URS
5:�aSnXRU5S-nUSURU5XRU5S
-S-nO\[R"SU5(d>[R"SU5(d"SU;dSU;a[S5n[	U5eUnSUS'[RX5nSUR;a@SURSlU(a%U(aURSRXe5 U$![
a GNbf=f)Nrr�r6r4rz9'route delete NUM' unsupported. Use 'delete NUM' instead.r�z in on z out on rBrAr@rDz
 (in|out) on z app (in|out) z in z out z'Invalid interface clause for route ruler.T)r^rr[rIrr�joinrk�searchr+rrv�forwardrn)	rr�idxr�	rule_argv�	interface�strip�srs	         rr�UFWCommandRouteRule.parses����A�w�'�!�"�!��t���*�*�X�&�C��G��4�y�3�����1�W�
�&�� [�\�G�"�7�+�+��	��	���
�H�H�T�N����>�j�A�o��E��z�z�$��$�*�*�U�"3�3���
�Z�Z��.��2�3�I��Q�t�z�z�%�0�1�D���E�9J�1�9L�9M�4N�N�I����+�Q�/�/����,�a�0�0���k�W��\��A�B�G��7�#�#��I��	�!��� � ��1���Q�V�V��%)�A�F�F�6�N�"������v��,�,�U�>����W"����s�&F0�0
F>�=F>)rN�r#r$r%r&r'rrr(r)rrr�r�s��3��8rr�c�$�\rSrSrSrSrSrSrg)�
UFWCommandAppiXz*Class for parsing ufw application commandsc�4�Sn[RXU5 g)NrSr/r0s   rr�UFWCommandApp.__init__Zs�������D��0rc��SnSnSnUSS:wa
[5eUS	[U5nUSR5nUS:XdUS:XafUS:�a'USS	:XaS
nURS	5 [U5nUS:a
[5e[	US5RS5nU(aUS
-
nUS:XaUS:wa
[5eUS:Xa�US:a
[5eUSR5S:XaSnOXUSR5S:XaSnO>USR5S:XaSnO$USR5S:XaSnO
[5e[
U5nURURS'X&RS'U$)zParse applications command.r4FrrS�info�updaterDrz	--add-newTr@z[']z	-with-new�list�defaultr<�
default-allowr=�default-denyr>�default-reject�skipzdefault-skipr�name)	rrrrZ�strr�rrrv)rrr�rw�addnewr�rs       rr�UFWCommandApp.parse^sq����������7�e���,����G��D�	���a�������V��v��1���z�d�1�g��4������K�(��D�	���q�y� �l�"��t�A�w�<�%�%�e�,�D���+�%���V����
��,���Y���q�y� �l�"��A�w�}�}��'�)�(���a�����F�*�'���a�����H�,�)���a�����F�*�'�� �l�"��f�%��������v�����v���rr)Nr�r)rrr�r�Xs��4�1�2rr�c�$�\rSrSrSrSrSrSrg)�UFWCommandBasici�z$Class for parsing ufw basic commandsc�4�Sn[RXU5 g)N�basicr/r0s   rr�UFWCommandBasic.__init__�s�������D��0rc�^�[U5S:wa
[5e[RX5$)Nr)rrrr)rrs  rr�UFWCommandBasic.parse�s&���t�9��>��,������+�+rr)Nr�r)rrr�r��s��.�1�,rr�c�$�\rSrSrSrSrSrSrg)�UFWCommandDefaulti�z&Class for parsing ufw default commandsc�4�Sn[RXU5 g)Nr�r/r0s   rr�UFWCommandDefault.__init__���������D��0rc��[U5S:a
[5eSnSn[U5S:�Ga,USR5S:wa}USR5S:wafUSR5S:waOUSR5S:wa8USR5S:wa!USR5S:wa
[5eUSR5RS	5(aSnOnUSR5RS
5(aSnODUSR5S:XdUSR5S:XaSnOUSR5nUSR5S:XaS
nO>USR5S:XaSnO$USR5S:XaSnO
[5eUSU--
n[	U5$)Nr@r4�incoming�input�routedr��output�outgoingrArBrr=r�r<r�r>r�z-%s)rrr�
startswithr)rrrwrJs    rr�UFWCommandDefault.parse�s����t�9�q�=��,�����	��t�9�q�=��A�w�}�}��*�,��A�w�}�}��'�)��A�w�}�}��(�*��A�w�}�}��)�+��A�w�}�}��(�*��A�w�}�}��*�,� �l�"��A�w�}�}��)�)�$�/�/�&�	��a�����+�+�E�2�2�&�	��a�����H�,��Q��
�
��9�0L�$�	� ��G�M�M�O�	���7�=�=�?�f�$�#�F�
�!�W�]�]�_��
'�$�F�
�!�W�]�]�_��
(�%�F��,���%�9�%�%�� ��(�(rr)Nr�r)rrr�r��s��0�1�%)rr�c�$�\rSrSrSrSrSrSrg)�UFWCommandLoggingi�z&Class for parsing ufw logging commandsc�4�Sn[RXU5 g)N�loggingr/r0s   rr�UFWCommandLogging.__init__�r�rc���Sn[U5S:a
[5eUSR5S:XaSnO�USR5S:Xd\USR5S:XdEUSR5S:Xd.USR5S	:XdUSR5S
:Xa3SnUSR5S:waUSUSR5--
nO
[5e[U5$)
Nr4r@r�offzlogging-offrC�low�medium�high�fullz
logging-onrI�rrrr�rrrws   rr�UFWCommandLogging.parse�s������t�9�q�=��,��
�!�W�]�]�_��
%�"�F�
�!�W�]�]�_��
$��Q��
�
��5�(@�
�!�W�]�]�_��
(�D��G�M�M�O�v�,E�
�!�W�]�]�_��
&�!�F��A�w�}�}��$�&��#��Q��
�
��/�/����,�� ��(�(rr)Nr�r)rrr�r��s��0�1�)rr�c�$�\rSrSrSrSrSrSrg)�UFWCommandStatusi�z%Class for parsing ufw status commandsc�4�Sn[RXU5 g)N�statusr/r0s   rr�UFWCommandStatus.__init__�s�������D��0rc��[RX5n[U5S:Xa	SUlU$[U5S:�aJUSR	5S:Xa	SUlU$USR	5S:Xa	SUlU$[5eU$)Nrr��verbosezstatus-verbose�numberedzstatus-numbered)rrrrwrrrs   rr�UFWCommandStatus.parse�s������T�(���t�9��>��A�H�����Y��]��A�w�}�}��)�+�+���
��	�a�����J�.�,�����!�l�"��rr)Nr�r)rrr�r��s��/�1�rr�c�$�\rSrSrSrSrSrSrg)�UFWCommandShowi�z#Class for parsing ufw show commandsc�4�Sn[RXU5 g)N�showr/r0s   rr�UFWCommandShow.__init__�r2rc��Sn[U5S:Xa
[5eUSR5S:XaSnO�USR5S:XaSnO�USR5S:XaSnO�USR5S	:XaS
nOrUSR5S:XaSnOXUSR5S
:XaSnO>USR5S:XaSnO$USR5S:XaSnO
[5e[U5$)Nr4r�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�s   rr�UFWCommandShow.parse�s������t�9��>��,��
�!�W�]�]�_��
%��F�
�!�W�]�]�_��
.�"�F�
�!�W�]�]�_��
,� �F�
�!�W�]�]�_�
�
-�!�F�
�!�W�]�]�_��
/�#�F�
�!�W�]�]�_�
�
*�$�F�
�!�W�]�]�_��
+�%�F�
�!�W�]�]�_��
'�!�F��,�� ��(�(rr)Nr�r)rrr�r��s��-�1�)rr�c�$�\rSrSrSrSrSrSrg)rizClass for ufw parser responsec�X�UR5UlSUlSUl0Ulg)NF)rrw�dryrun�forcerv)rrws  rr�UFWParserResponse.__init__s$���l�l�n��������
���	rc���SUR-n[URR55nUR	5 UHnUSU<SURU<S3-
nM  US-
n[U5$)Nzaction='%s'rMz='rG�
)rwr�rvr��sort�repr)rr�r�r�s    r�__str__�UFWParserResponse.__str__!sa���T�[�[�)���D�I�I�N�N�$�%���	�	���A�
�q�$�)�)�A�,�/�/�A��	�T�	���A�w�r)rwrvr�r�N)r#r$r%r&r'rr�r(r)rrrrs��'��rrc�0�\rSrSrSrSrSrSrSrSr	g)	�	UFWParseri,zClass for ufw parserc��0Ulgr
��commands)rs rr�UFWParser.__init__.s	����
rc�$�UR5[URR55;a
[	5eUR5[URUR55;a
[	5eUR5$)z=Return command if it is allowed, otherwise raise an exception)rr�rr�r)rr�cmds   r�allowed_command�UFWParser.allowed_command1sc���:�:�<�t�D�M�M�$6�$6�$8�9�9��,���9�9�;�d�4�=�=��#6�#;�#;�#=�>�>��,���y�y�{�rc�
�Sn[U5S:�a-USR5S:XaSnURUS5 Sn[U5S:�aDUSR5S:XdUSR5S:XaSnURUS5 SnSnUSR5n[U5S:�axU[URR55;aQUSR5[URUR55;aUnUSR5nO�Un[URR55H`nX@RU;dM[
URUU[5(a"[URUUS	5S
:waM^Un O US:XaS
nURXT5nURUUnURU5n	X)lX9lU	$)z(Parse command. Returns a UFWParserActionFrz	--dry-runTz--forcez-fr4rrr.)
rrrZr�rr��
isinstancer+�getattrrrr�r�)
rr r�r�rrr�r�rw�responses
          r�
parse_command�UFWParser.parse_command;s������t�9�q�=�T�!�W�]�]�_��;��F��K�K��Q�� ����t�9�q�=�d�1�g�m�m�o��:�"�1�g�m�m�o��5��E��K�K��Q�� ������1�g�m�m�o���t�9�q�=�S�D����);�);�)=�$>�>��Q��
�
��4��
�
�c�(:�(?�(?�(A�#B�B��D��q�'�-�-�/�C��C��$�-�-�,�,�.�/���-�-��*�*�"�$�-�-��"2�3�"7��H�H��t�}�}�Q�/��4�f�=��G� ��D��0��r�z����%�%�d�0���m�m�D�!�&�)���9�9�T�?�� �����rc��URbURS:XaSUR-nOSUR-nURUR;a0URUR'X RUR;a[S5U-n[	U5eXRURU'g)z"Register a command with the parserNr4z%szCommand '%s' already exists)rrrrIr)r�c�keyrs    r�register_command�UFWParser.register_commandis����9�9���	�	�R���!�&�&�/�C��!�)�)�$�C��6�6����&�$&�D�M�M�!�&�&�!��-�-����'�'��5�6�#�>�G��7�#�#�%&�
�
�a�f�f��c�"rrN)
r#r$r%r&r'rrrrr(r)rrr�r�,s�����,�\
'rr�)rk�ufw.utilr_�ufw.applications�
ufw.commonrrrr+r�r�r�r�r�r�r�rr�r)rr�<module>rs���J
�����<�<�*S,�Z�S,�l>�.�>�B8�J�8�v	,�j�	,�+)�
�+)�\)�
�)�0�z��()�Z�)�@��&J'�J'r

Filemanager

Name Type Size Permission Actions
__init__.cpython-313.pyc File 143 B 0644
applications.cpython-313.pyc File 7.18 KB 0644
backend.cpython-313.pyc File 30.57 KB 0644
backend_iptables.cpython-313.pyc File 58.33 KB 0644
common.cpython-313.pyc File 27.22 KB 0644
frontend.cpython-313.pyc File 38.58 KB 0644
parser.cpython-313.pyc File 31.12 KB 0644
util.cpython-313.pyc File 40.09 KB 0644
Filemanager