HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/twisted/pair/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/twisted/pair/__pycache__/ip.cpython-312.pyc
�

Ϫ�f	���dZddlZddlZddlmZddlmZddlmZGd�d�Z	dZ
eej�Gd	�d
ej��Z
y)z,Support for working directly with IP packets�N)�implementer)�protocol)�rawc��eZdZd�Zy)�IPHeaderc
�l�tjd|dd�\
}|_|_|_}|_|_|_}}tj|�|_
tj|�|_|dz|_|dzdz	dz|_
|dz|_|dzd	k7|_|d
zd	k7|_y)Nz
!BBHHHBBH4s4s������i�i@ri )�struct�unpack�tos�tot_len�fragment_id�ttlr�check�socket�	inet_ntoa�saddr�daddr�version�ihl�fragment_offset�
dont_fragment�more_fragments)�self�data�
ihlversion�frag_offrrs      �1/usr/lib/python3/dist-packages/twisted/pair/ip.py�__init__zIPHeader.__init__s���
�M�M�/�4���9�5�	
���H��L�����H��M��J����%�%�e�,��
��%�%�e�,��
�!�D�(����$�&�1�,��2���'�&�0���%��.�!�3���&��/�1�4���N)�__name__�
__module__�__qualname__r#�r$r"rrs��5r$rlc��eZdZd�Zd�Zd�Zy)�
IPProtocolc��i|_y)N)�ipProtos)rs r"r#zIPProtocol.__init__/s	����
r$c���tj|�}|dkrtd��|tk\rtd��||jvrg|j|<|j|j|�y)Nrz'Added protocol must be positive or zeroz"Added protocol must fit in 32 bits)r�IRawDatagramProtocol�	TypeError�MAX_SIZEr,�append)r�num�protos   r"�addProtozIPProtocol.addProto2si���(�(��/����7��E�F�F��(�?��@�A�A��d�m�m�#�!#�D�M�M�#���
�
�c��!�!�%�(r$c��t|�}|jj|jd�D]�}|j	|dd||j
|j|j|j|j|j|j|j|j|j|j|j����y)Nr(r	)r�partial�source�destrrrrrrrrrr)rr,�getr�datagramReceivedrrrrrrrrrrr)rrr6r8r7r�headerr3s        r"r:zIPProtocol.datagramReceived<s����$����]�]�&�&�v����;�	�E��"�"��"�#�Y���|�|��\�\��������J�J��J�J����"�.�.� &� 6� 6�$�2�2�%�4�4��J�J�
#�
�	r$N)r%r&r'r#r4r:r(r$r"r*r*-s���)�r$r*)�__doc__rr�zope.interfacer�twisted.internetr�twisted.pairrrr0�IRawPacketProtocol�AbstractDatagramProtocolr*r(r$r"�<module>rBsV��3�
�
�&�%��5�5�.��
�S�
#�
#�$� ��2�2� �%� r$