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/__pycache__/conntrack.cpython-311.pyc
�

�;f���~�ddlZddlmZmZmZmZmZGd�de��ZGd�de��Z	Gd�de��Z
dS)	�N)�IP_CT_TCP_FLAG_TO_NAME�IPSBIT_TO_NAME�TCP_CONNTRACK_TO_NAME�
NFCTAttrTuple�
NFCTSocketc�J�eZdZdZ				dd�Zd�Zd�Zed���Zd�Z	dS)	�NFCTATcpProtoInfo��state�wscale_orig�wscale_reply�
flags_orig�flags_replyNc�L�||_||_||_||_||_dS�Nr
)�selfrrr
rrs      �E/opt/alt/python311/lib/python3.11/site-packages/pyroute2/conntrack.py�__init__zNFCTATcpProtoInfo.__init__s0����
�&���(���$���&�����c�6�tj|jd��S)N�UNKNOWN)r�getr�rs r�
state_namezNFCTATcpProtoInfo.state_name#s��$�(���Y�?�?�?rc��|�dSd}tj��D]"\}}||zr|d�|��z
}�#|dd�S�N�z{},���)r�items�format)r�flags�s�bit�names     r�
flags_namezNFCTATcpProtoInfo.flags_name&s]���=��2���/�5�7�7�	(�	(�I�C���s�{�
(��U�\�\�$�'�'�'�����"��v�
rc���|�d��}|�d��}|�d��\}}|�d��\}}||||���S)N�CTA_PROTOINFO_TCP�CTA_PROTOINFO_TCP_STATE� CTA_PROTOINFO_TCP_FLAGS_ORIGINAL�CTA_PROTOINFO_TCP_FLAGS_REPLY)rrr)�get_attr)�cls�ndmsg�cta_tcprr�_rs       r�from_netlinkzNFCTATcpProtoInfo.from_netlink/sq���.�.�!4�5�5��� � �!:�;�;�� �(�(�)K�L�L�
�
�A� �)�)�*I�J�J���Q��s��:�;�O�O�O�Orc��d�|���|�|j��|�|j����S)Nz0TcpInfo(state={}, orig_flags={}, reply_flags={}))r rr%rrrs r�__repr__zNFCTATcpProtoInfo.__repr__9sJ��A�H�H��O�O����O�O�D�O�,�,��O�O�D�,�-�-�
�
�	
r)NNNN)
�__name__�
__module__�__qualname__�	__slots__rrr%�classmethodr0r2�rrr	r	s��������I�����
'�'�'�'�@�@�@�����P�P��[�P�
�
�
�
�
rr	c�$�eZdZdZd�Zd�Zd�ZdS)�ConntrackEntry)�
tuple_orig�tuple_reply�status�timeout�	protoinfo�mark�id�usec
�6�tj||��|_tj||��|_||_||_|jjtjkr t�|��|_
nd|_
||_||_|	|_
dSr)rr0r;r<r=r>�proto�socket�IPPROTO_TCPr	r?r@rArB)
r�familyr;r<�
cta_status�cta_timeout�
cta_protoinfo�cta_mark�cta_id�cta_uses
          rrzConntrackEntry.__init__Ms���(�4�V�Z�H�H���(�5�f�k�J�J��� ���"����?� �F�$6�6�6�.�;�;�M�J�J�D�N�N�!�D�N���	��������rc��d}tj��D]'\}}|j|zr|d�|��z
}�(|dd�Sr)rrr=r )rr"r#r$s    r�status_namezConntrackEntry.status_namehsV����'�-�/�/�	(�	(�I�C���{�S� �
(��U�\�\�$�'�'�'�����"��v�
rc��d�|j|j|�����}|j�|d�|j��z
}|dz
}|S)Nz"Entry(orig={}, reply={}, status={}z, protoinfo={}�))r r;r<rOr?)rr"s  rr2zConntrackEntry.__repr__osb��0�7�7��O�T�-�t�/?�/?�/A�/A�
�
���>�%�
�!�(�(���8�8�8�A�	�S����rN)r3r4r5r6rrOr2r8rrr:r:AsH������	�I����6�������rr:c�b��eZdZdZd�fd�	Z�fd�Z�fd�Z�fd�Zd�Z�fd�Z					d
d�Z
�xZS)�	Conntrackz(
    High level conntrack functions
    Tc�L��tt|��jdd|i|��dS)N�
nlm_generatorr8)�superrSr)rrU�kwargs�	__class__s   �rrzConntrack.__init__~s1���'��i����'�N�N�m�N�v�N�N�N�N�Nrc����g}tt|�����D]J}|�d|di��|d�d�|dD�����K|S)ztReturn current statistics per CPU

        Same result than conntrack -S command but a list of dictionaries
        �cpu�res_idrc3�K�|]:\}}|�d���|dd����|fV��;dS)�
CTA_STATS_�
N)�
startswith�lower)�.0�k�vs   r�	<genexpr>z!Conntrack.stat.<locals>.<genexpr>�sa�������A�q��<�<��-�-���2�3�3�������#������r�attrs)rVrS�stat�append�update)r�stats�msgrXs   �rrfzConntrack.stat�s����
����D�)�)�.�.�0�0�	�	�C��L�L�%��X��/�0�0�0��"�I�������L����
�
�
�
��rc���tt|�����D]}|�d��cSdS)z�Return current number of conntrack entries

        Same result than /proc/sys/net/netfilter/nf_conntrack_count file
        or conntrack -C command
        �CTA_STATS_GLOBAL_ENTRIESN)rVrS�countr+�rr-rXs  �rrmzConntrack.count�sM����9�d�+�+�1�1�3�3�	>�	>�E��>�>�"<�=�=�=�=�=�	>�	>rc���tt|�����D]}|�d��cSdS)zs
        Return the max size of connection tracking table
        /proc/sys/net/netfilter/nf_conntrack_max
        �CTA_STATS_GLOBAL_MAX_ENTRIESN)rVrS�conntrack_max_sizer+rns  �rrqzConntrack.conntrack_max_size�sQ���
�9�d�+�+�>�>�@�@�	B�	B�E��>�>�"@�A�A�A�A�A�	B�	Brc���t|t��r|j}n&t|t��r|}nt	���|�d|���D]}|cSdS)N�del)r;)�
isinstancer:r;r�NotImplementedError�entry)rrvr;r-s    r�deletezConntrack.delete�su���e�^�,�,�	(��)�J�J�
��}�
-�
-�	(��J�J�%�'�'�'��Z�Z��*�Z�=�=�	�	�E��L�L�L�	�	rc�V��tt|��j|fi|��D]}|cSdSr)rVrSrv)r�cmdrW�resrXs    �rrvzConntrack.entry�sD���/�5��D�)�)�/��>�>�v�>�>�	�	�C��J�J�J�	�	rN���c#�|K�|�||||���D�]}|�0|�|d|�d����s�5|�0|�|d|�d����s�gt|d|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d���	�	V��� dS)aR
        Dump all entries from conntrack table with filters

        Filters can be only part of a conntrack tuple

        :param NFCTAttrTuple tuple_orig: filter on original tuple
        :param NFCTAttrTuple tuple_reply: filter on reply tuple

        Examples::
            # Filter only on tcp connections
            for entry in ct.dump_entries(tuple_orig=NFCTAttrTuple(
                                             proto=socket.IPPROTO_TCP)):
                print("This entry is tcp: {}".format(entry))

            # Filter only on icmp message to 8.8.8.8
            for entry in ct.dump_entries(tuple_orig=NFCTAttrTuple(
                                             proto=socket.IPPROTO_ICMP,
                                             daddr='8.8.8.8')):
                print("This entry is icmp to 8.8.8.8: {}".format(entry))
        )r@�	mark_maskr;r<N�nfgen_family�CTA_TUPLE_ORIG�CTA_TUPLE_REPLY�
CTA_STATUS�CTA_TIMEOUT�
CTA_PROTOINFO�CTA_MARK�CTA_ID�CTA_USE)�dump�nla_eqr+r:)rr@r}r;r<r-s      r�dump_entrieszConntrack.dump_entries�sS����6�Y�Y���!�#�	�
�
�	�	�E��%�j�.?�.?��n�%�u�~�~�6F�'G�'G�/�/�%���&�{�/A�/A��n�%�u�~�~�6G�'H�'H�0�0�&�� ��n�%����/�0�0����0�1�1����|�,�,����}�-�-�����/�/����z�*�*����x�(�(����y�)�)�
�
�

�

�

�

�!	�	r)T)Nr{NN)r3r4r5�__doc__rrfrmrqrwrvr��
__classcell__)rXs@rrSrSys����������O�O�O�O�O�O������">�>�>�>�>�B�B�B�B�B�������������5�5�5�5�5�5�5�5rrS)rE�%pyroute2.netlink.nfnetlink.nfctsocketrrrrr�objectr	r:rSr8rr�<module>r�s���
�
�
�
���������������2
�2
�2
�2
�2
��2
�2
�2
�j5�5�5�5�5�V�5�5�5�pm�m�m�m�m�
�m�m�m�m�mr