HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/pyroute2/ipdb/__pycache__/rules.cpython-311.pyc
�

�;f�%��
�ddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZddlm
Z
ddlmZmZeje��Ze
je
jzZedd	��ZGd
�de��ZGd�d
e��Zdeid�gZdS)�N)�
namedtuple)�AF_INET�AF_INET6)�CommitException)�
Transactional)�rtnl)�FR_ACT_NAMES�fibmsg�RuleKey)
�action�table�priority�iifname�oifname�fwmark�fwmask�family�goto�tun_idc��eZdZdZd�ejD��ZejD]\ZZ	e�
e���e�
d��ddgZe�e��dZ
ed���Zdd	�Zd
�Z	dd
�Zd�Zd�ZdS)�Rulez.
    Persistent transactional rule object
    c�B�g|]}tj|d����S)�)r
�nla2name)�.0�is  �F/opt/alt/python311/lib/python3.11/site-packages/pyroute2/ipdb/rules.py�
<listcomp>zRule.<listcomp>&s&��=�=�=��v��q��t�$�$�=�=�=��removal�
ipdb_scope�
ipdb_priority)�attrs�header�event�src_len�dst_len�res1�res2c���g}t|t��retjD]W}|�|�|����}|�|�|d��}|�|���Xnmt|t��r9tjD]+}|�|�|d�����,ntdt|��z���t|�S)Nrzprime not supported: %s)�
isinstancer
r�_fields�get_attr�name2nla�get�append�dict�	TypeError�type)�cls�msg�values�field�vs     r�make_keyz
Rule.make_key6s������c�6�"�"�
	C� ��
!�
!���L�L����e�!4�!4�5�5���9�����q�)�)�A��
�
�a� � � � �	
!�
��T�
"�
"�	C� ��
1�
1���
�
�c�g�g�e�Q�/�/�0�0�0�0�
1��5��S�	�	�A�B�B�B����rNc��tj|||||��|j5d|d<ddd��dS#1swxYwYdS)Nrr")r�__init__�
_direct_state)�self�ipdb�mode�parent�uids     rr;z
Rule.__init__Fs�����t�T�4���=�=�=�
�
�	&�	&�$%�D��!�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�3�7�7c�@�|j5|ddkr	ddd��dSd|d<|���D]
\}}|||<�|dD]1}tj|d��}||jvr�&|d||<�2|�d��r%|�d���d|d	��}||d
<|�d��r%|�d���d|d��}||d
<|jD]	}||vr||=�
	ddd��n#1swxYwY|S)Nr!�locked�systemr#rr�FRA_DST�/r'�dst�FRA_SRCr&�src)r<�itemsr
r�cleanupr-)	r=r5�key�value�cell�normrGrI�items	         r�load_netlinkzRule.load_netlinkKs���
�
�	#�	#��L�!�X�-�-��	#�	#�	#�	#�	#�	#�	#�	#�
"*�D���!�i�i�k�k�
"�
"�
��U�!��S�	�	��G��
%�
%����t�A�w�/�/���4�<�'�'��!�!�W��T�
�
��|�|�I�&�&�
"�!$���i�!8�!8�!8�!8�#�i�.�.�I��!��U���|�|�I�&�&�
"�!$���i�!8�!8�!8�!8�#�i�.�.�I��!��U����
#�
#���4�<�<��T�
��
#�7	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�<�s�D�C#D�D�Dr�c�~�||zs|Sd}|jj}d}ddd�}d}	|s|rd}	|r|j|}n	|p|j}|ddkrd}|���}
||
z\}}|�dd��|�dd��	t
|�����s|dk�rd|�|��}
|�|��}||
krc||jj	vrtd���||jj	|<|jjdi|
�
����|jjdi|��n�|dkr�|j5d
|d<ddd��n#1swxYwY|jj	di|
�
����}|jjdi|
�
����|���|j5d|d<ddd��n#1swxYwY|jjdi|��|���|dd
vs|ddkr�|dkr�|ddkr$|j5d
|d<ddd��n#1swxYwY|�|
��}|jjdi|�
����}|jjdi|�
����|���|ddkr$|j5d|d<ddd��n#1swxYwYd}n�#t$$rv}|}t'j��|d<g|d<d|d<|dkrD	|�|
d|���n*#t$$r}||d<t-��}Yd}~nd}~wwxYwYd}~nd}~wwxYw|r|	r|�|j��|�	||_|�|S)N�set)�	traceback�
next_stageTFr!rD�addzrule priority conflict�delrC�RTM_DELRULE�reload)�shadow�remove�create�r[rU�error_stackrVr)�transaction�commit_phase�commit_mask)rX)rW)rY)r>�txdrop�	global_tx�
current_tx�pick�pop�anyr6r9�rulesr�nl�rule�_asdictr<�watchdog�wait�wait_all_targets�	ExceptionrU�
format_exc�commit�RuntimeError�droprA�debug)r=�tidr`rarb�errorrt�devopru�notx�snapshot�added�removed�old_key�new_key�wdrL�e�i_es                   rrrzRule.commitls����k�)�	��K����y�����"�$�7�7�����	�+�	��D��	9��.��-�K�K�%�8���K�����)�)��E��9�9�;�;��$��0���w�
�	�	�,��%�%�%����L�$�'�'�'�=	+��5�<�<�>�>�"�"�
/�e�u�n�n��-�-��-�-���-�-��4�4���g�%�%��$�)�/�1�1�-�.F�G�G�G�37��	���0�$����@�@�g�o�o�.?�.?�@�@�@�$����:�:�k�:�:�:�:���~�~�!�/�:�:�19�D��.�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:�/�T�Y�/�)���-4�_�_�->�->����%����@�@�g�o�o�.?�.?�@�@�@����	�	�	�!�/�:�:�19�D��.�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:� �D�G�L�6�6�+�6�6�6��,�,�.�.�.��L�)�-A�A�A��\�*�h�6�6�L�A�<M�<M��|�,��8�8��+�6�6�-5��\�*�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6��m�m�H�-�-��'�T�Y�'�G�G������G�G������4�4�c�k�k�m�m�4�4�4����	�	�	��|�,��8�8��+�6�6�-5��\�*�6�6�6�6�6�6�6�6�6�6�6����6�6�6�6��D�D���	+�	+�	+��E�!*�!5�!7�!7�E�+��#%�E�-� �"&�E�,���q� � �+��K�K�$,�%&�$/� ������
!�+�+�+�*-�E�,�'�(�N�N�E�E�E�E�E�E�����+�������������	+����$�	'�D�	'��I�I�k�o�&�&�&����E�K��K��s��CL�E/�#L�/E3�3L�6E3�7A'L�G0�$L�0G4�4L�7G4�8AL�I"�L�"I&�&L�)I&�*BL�1L�7L�L�L�
L�L�
N�(N�M�N�
N�'M?�:N�?N�N�Nc��d|d<|S)Nr\r!��r=s rr\zRule.remove����%��\���rc��d|d<|S)Nr[r!r�r�s rr[zRule.shadow�r�r)NNN)NNrrR)�__name__�
__module__�__qualname__�__doc__r
�nla_mapr,�fieldsrL�_r0�_virtual_fields�extendrK�classmethodr9r;rQrrr\r[r�rrrr!s��������>�=�f�n�=�=�=�G��-�����Q����s������N�N�9����#�_�5�O��N�N�?�#�#�#��G��
 �
 ��[�
 �&�&�&�&�
���DGK�c�c�c�c�J�������rrc�8��eZdZd�Zd�Z�fd�Zdd�Zd�Z�xZS)�	RulesDictc�l�||_tj��|_|j|jd�|_dS)N)�RTM_NEWRULErY)r>�	threading�Lock�lockrQ�
_event_map)r=r>s  rr;zRulesDict.__init__�s6����	��N�$�$��	��,��,�
�
����rc��|jj�t���D]}|�|���|jj�t
���D]}|�|���dS)N)r)r>rj�	get_rulesrrQr)r=r5s  r�	_registerzRulesDict._register�s����9�<�)�)��)�9�9�	#�	#�C����c�"�"�"�"��9�<�)�)��)�:�:�	#�	#�C����c�"�"�"�"�	#�	#rc���|j5t|t��r4tt|���|��cddd��St|t��r;tt|���t|���cddd��St|t��rZ|���D]D}||dkr6tt|���|��ccddd��S�Enct|t��rN|�
��D]9}|D]$}|||�|d��krn�%|ccddd��S�:ddd��dS#1swxYwYdS)Nr^)r�r+r�superr��__getitem__�tuple�int�keysr1r6r/)r=rL�kr8�	__class__s    �rr�zRulesDict.__getitem__�sB���
�Y�	!�	!��#�w�'�'�
!��Y��-�-�9�9�#�>�>�	!�	!�	!�	!�	!�	!�	!�	!��C��'�'�
!��Y��-�-�9�9�'�3�-�H�H�		!�	!�	!�	!�	!�	!�	!�	!�
�C��%�%�

!������E�E�A��a��d�{�{�$�Y��5�5�A�A�!�D�D�D�D�	!�	!�	!�	!�	!�	!�	!�	!�#�E��C��&�&�
!������!�!�A� �!�!���q�6�Q�U�U�1�d�^�^�3�3�!�E�4� !���	!�	!�	!�	!�	!�	!�	!�	!�"�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s,�=F�AF�#A F�AF�4F�F�	FNc���t|p|��}d|vrd|d<d|vrtd|d<nd|vrtd|d<d|vr
t|d<t|j��}|�|��|j5d	|d
<ddd��n#1swxYwY|���|���D]
\}}|||<�|||�	|��<|S)z1
        Create a rule from a dictionary
        ri}r
�
FR_ACT_TO_TBLrr�FR_ACT_GOTOrr]r!N)
r1r	rrr>�updater<�beginrJr9)r=�spec�kwargrkrLrMs      rrWz
RulesDict.add�sG���D�M�E�"�"���T�!�!�$�D����d�?�?�)�/�:�D��N�N�
�t�^�^�)�-�8�D��N��4���$�D��N��D�I�������D����
�
�	*�	*�!)�D���	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	
�
�
�����*�*�,�,�	�	�J�C���D��I�I�$(��T�]�]�4�
 �
 �!��s�B�B�Bc���t|t��sdSt�|��}|ddkro	||}|ddvr'||=|j5d|d<ddd��n#1swxYwYn2#t
$r%}t�d|��Yd}~nd}~wwxYwdS||vrt|j��||<||�	|��||S)Nr%rYr!)rCr[�detachedzdelrule failed for %s)
r+r
rr9r<rp�logrur>rQ)r=r5rL�recordr�s     rrQzRulesDict.load_netlinksR���#�v�&�&�	��F��m�m�C� � ���w�<�=�(�(�

6��c����,�'�/C�C�C��S�	��-�:�:�/9��|�,�:�:�:�:�:�:�:�:�:�:�:����:�:�:�:����
6�
6�
6��	�	�1�1�5�5�5�5�5�5�5�5�����
6����
�F��d�?�?��T�Y���D��I��S�	���s�#�#�#��C�y�s;�A9�A-�!A9�-A1�1A9�4A1�5A9�9
B(�B#�#B()N)	r�r�r�r;r�r�rWrQ�
__classcell__)r�s@rr�r��sy�������
�
�
�#�#�#�!�!�!�!�!�$����8������rr�ri)�name�classr�)�loggingr�rU�collectionsr�socketrr�pyroute2.ipdb.exceptionsr�pyroute2.ipdb.transactionalr�pyroute2.netlinkr�pyroute2.netlink.rtnl.fibmsgr	r
�	getLoggerr�r��RTMGRP_IPV4_RULE�RTMGRP_IPV6_RULE�groupsrrr1r�r�r�rr�<module>r�sY��������������"�"�"�"�"�"�$�$�$�$�$�$�$�$�4�4�4�4�4�4�5�5�5�5�5�5�!�!�!�!�!�!�=�=�=�=�=�=�=�=��g���!�!��	
�	��!6�	6���*�
�����"v�v�v�v�v�=�v�v�v�rV�V�V�V�V��V�V�V�r�9�r�:�:�;���r