ó
    Ö›‘h  ã                   óœ   • S r SSKrSSKJr  SSKJr  SSKJr   " S S5      r\" \R                  5       " S S	\R                  5      5       rg)
z1
Implementation of raw packet interfaces for UDP
é    N)Úimplementer)Úprotocol)Úrawc                   ó   • \ rS rSrS rSrg)Ú	UDPHeaderé   c                 ój   • [         R                  " SUS S 5      u  U l        U l        U l        U l        g )Nz!HHHHé   )ÚstructÚunpackÚsourceÚdestÚlenÚcheck)ÚselfÚdatas     ÚWC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/pair/rawudp.pyÚ__init__ÚUDPHeader.__init__   s,   € Ü9?¿ºØ�T˜"˜1�Xó:
Ñ6ˆŒ�d”i ¤¨4­:ó    )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__© r   r   r   r      s   † õ
r   r   c                   ó&   • \ rS rSrS rS rS rSrg)ÚRawUDPProtocolé   c                 ó   • 0 U l         g )N©Ú	udpProtos)r   s    r   r   ÚRawUDPProtocol.__init__   s	   € Øˆ�r   c                 ó  • [        U[        R                  5      (       d  [        S5      eUS:  a  [        S5      eUS:¼  a  [        S5      eXR                  ;  a  / U R                  U'   U R                  U   R                  U5        g )Nz6Added protocol must be an instance of DatagramProtocolr   z'Added protocol must be positive or zeroi   z"Added protocol must fit in 16 bits)Ú
isinstancer   ÚDatagramProtocolÚ	TypeErrorr"   Úappend)r   ÚnumÚprotos      r   ÚaddProtoÚRawUDPProtocol.addProto   sv   € Ü˜%¤×!:Ñ!:×;Ñ;ÜÐTÓUÐUØ�‹7ÜÐEÓFÐFØ�%‹<ÜÐ@ÓAÐAØ—n‘nÓ$Ø"$ˆD�N‰N˜3ÑØ�‰�sÑ×"Ñ" 5Õ)r   c                 ó´   • [        U5      nU R                  R                  UR                  S5       H#  nUR	                  USS  X?R
                  45        M%     g )Nr   r
   )r   r"   Úgetr   ÚdatagramReceivedr   )r   r   Úpartialr   r   r   ÚversionÚihlÚtosÚtot_lenÚfragment_idÚfragment_offsetÚdont_fragmentÚmore_fragmentsÚttlÚheaderr*   s                    r   r/   ÚRawUDPProtocol.datagramReceived(   sI   € ô" ˜4“ˆØ—^‘^×'Ñ'¨¯©°RÖ8ˆEØ×"Ñ" 4¨¨ 8¨f·m±mÐ-DÖEò 9r   r!   N)r   r   r   r   r   r+   r/   r   r   r   r   r   r      s   † òò	*õFr   r   )Ú__doc__r   Úzope.interfacer   Útwisted.internetr   Útwisted.pairr   r   ÚIRawDatagramProtocolÚAbstractDatagramProtocolr   r   r   r   Ú<module>rB      sQ   ðñ
ó å &å %Ý ÷
ñ 
ñ ˆS×%Ñ%Ó&ô"F�X×6Ñ6ó "Fó 'ñ"Fr   