§
    Ètºf˜)  ã                  ó‚   — d dl mZ d dlmZ d dlmZ d dlmZ  G d„ dej        ¦  «        Z	 G d„ dej
        ¦  «        Zd	S )
é    )Úannotations)Úprotocol)Úrawudp)Úunittestc                  ó   — e Zd Zdd„Zdd
„ZdS )Ú
MyProtocolÚ	expectingúlist[tuple[bytes, bytes, int]]ÚreturnÚNonec                ó.   — t          |¦  «        | _        d S )N)Úlistr	   )Úselfr	   s     ú\/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/pair/test/test_rawudp.pyÚ__init__zMyProtocol.__init__   s   € Ý˜i™œˆŒˆˆó    ÚdataÚbytesÚpeerútuple[bytes, int]c                ó,  — |\  }}| j         s
J d¦   «         ‚| j                              d¦  «        \  }}}||k    sJ d                     ||¦  «        ¦   «         ‚||k    sJ d                     ||¦  «        ¦   «         ‚||k    sJ d||||fz  ¦   «         ‚d S )Nz(Got a packet when not expecting anymore.r   zExpected data {!r}, got {!r}zExpected host {!r}, got {!r}z&Expected port %d=0x%04x, got %d=0x%04x)r	   ÚpopÚformat)r   r   r   ÚhostÚportÚ
expectDataÚ
expectHostÚ
expectPorts           r   ÚdatagramReceivedzMyProtocol.datagramReceived   s×   € Ø‰ˆˆtØŒ~ÐIÐIÐIÑIÔIÐIØ-1¬^×-?Ò-?ÀÑ-BÔ-BÑ*ˆ
�J 
à˜TÒ!Ð!Ð!Ð#A×#HÒ#HØ˜ñ$
ô $
Ñ!Ô!Ð!ð ˜TÒ!Ð!Ð!Ð#A×#HÒ#HØ˜ñ$
ô $
Ñ!Ô!Ð!ð ˜TÒ!Ð!Ð!Ð#KØØØØð	O
ñ $
Ñ!Ô!Ð!Ð!Ð!r   N)r	   r
   r   r   )r   r   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r   r   © r   r   r   r      s<   € € € € € ð)ð )ð )ð )ð
ð 
ð 
ð 
ð 
ð 
r   r   c                  óV   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„ZdS )ÚRawUDPTestsr   r   c                óð   — t          j        ¦   «         }t          dg¦  «        }|                     d|¦  «         |                     dddddddddddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚d S ©	N©ó   foobaró   testHosti¢C  éð  ó   C¢ð Þ­foobarr   ó   dummyr*   ©ÚpartialÚdestÚsourcer   ÚversionÚihlÚtosÚtot_lenÚfragment_idÚfragment_offsetÚdont_fragmentÚmore_fragmentsÚttlú5Should not expect any more packets, but still want %r©r   ÚRawUDPProtocolr   ÚaddProtor   r	   ©r   ÚprotoÚp1s      r   ÚtestPacketParsingzRawUDPTests.testPacketParsing$   s¼   € ÝÔ%Ñ'Ô'ˆÝà0ðñ
ô 
ˆð
 	�Š�v˜rÑ"Ô"Ð"à×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð* ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                ó8  — t          j        ¦   «         }t          ddg¦  «        }|                     d|¦  «         |                     dddddddddddddd¬¦  «         |                     d	ddd
dddddddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚d S )Nr(   ©ó   quuxó	   otherHostiþ3  r+   r,   r   r-   r*   r.   ó   3þð Þ­quuxrF   r;   r<   r?   s      r   ÚtestMultiplePacketszRawUDPTests.testMultiplePacketsF   s  € ÝÔ%Ñ'Ô'ˆÝà0Ø/ðñ
ô 
ˆð 	�Š�v˜rÑ"Ô"Ð"Ø×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð( 	×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð* ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                ón  — t          j        ¦   «         }t          dg¦  «        }t          dg¦  «        }|                     d|¦  «         |                     d|¦  «         |                     dddddddddddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚|j        rJ d|j        z  ¦   «         ‚d S r'   r<   ©r   r@   rA   Úp2s       r   ÚtestMultipleSameProtosz"RawUDPTests.testMultipleSameProtos|   s  € ÝÔ%Ñ'Ô'ˆÝà0ðñ
ô 
ˆõ à0ðñ
ô 
ˆð 	�Š�v˜rÑ"Ô"Ð"Ø�Š�v˜rÑ"Ô"Ð"à×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð* ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                ó¼   — t          j        ¦   «         }t          g ¦  «        }|                     d|¦  «         |                     dddddddddddddd¬¦  «         d S )Né   r,   r   r-   r*   r.   )r   r=   r   r>   r   r?   s      r   ÚtestWrongProtoNotSeenz!RawUDPTests.testWrongProtoNotSeen©   s„   € ÝÔ%Ñ'Ô'ˆÝ˜‰^Œ^ˆØ�Š�q˜"ÑÔÐà×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                óD  — t          j        ¦   «         }t          ddg¦  «        }|                     d|¦  «         t          ddg¦  «        }|                     d|¦  «         |                     ddd	d
d	d	d	d	d	d	d	d	d	d	¬¦  «         |                     ddd	dd	d	d	d	d	d	d	d	d	d	¬¦  «         |                     ddd	d
d	d	d	d	d	d	d	d	d	d	¬¦  «         |                     ddd	dd	d	d	d	d	d	d	d	d	d	¬¦  «         |j        rJ d|j        z  ¦   «         ‚|j        rJ d|j        z  ¦   «         ‚d S )Nr(   rD   r+   )rE   rF   i¤  )r)   r*   i£  iP°  s   ¤°P Þ­quuxr   r-   rF   r.   r,   r*   rG   s   £°P Þ­foobarr;   r<   rJ   s       r   ÚtestDemuxingzRawUDPTests.testDemuxingÃ   s   € ÝÔ%Ñ'Ô'ˆÝà0Ø/ðñ
ô 
ˆð 	�Š�v˜rÑ"Ô"Ð"åà/Ø0ðñ
ô 
ˆð 	�Š�v˜rÑ"Ô"Ð"à×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð( 	×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð( 	×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð( 	×Òðð
 ØØØØØØØØ Ø$Ø"Ø#Øð% 	ñ 	
ô 	
ð 	
ð* ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                ó¾   — t          j        ¦   «         }	 |                     dd¦  «         t          d¦  «        ‚# t          $ r}|j        dk    rn‚ Y d}~dS d}~ww xY w)z2Adding a wrong level protocol raises an exception.é*   Ú	sillinessú2addProto must raise an exception for bad protocols)z6Added protocol must be an instance of DatagramProtocolN)r   r=   r>   ÚAssertionErrorÚ	TypeErrorÚargs©r   Úes     r   ÚtestAddingBadProtos_WrongLevelz*RawUDPTests.testAddingBadProtos_WrongLevel-  s   € åÔ!Ñ#Ô#ˆð	WØ�JŠJ�r˜;Ñ'Ô'Ð'õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐTÒTÐTØàð �����øøøøð	øøøs   •: º
AÁAÁAc                óà   — t          j        ¦   «         }	 |                     dt          j        ¦   «         ¦  «         t          d¦  «        ‚# t          $ r}|j        dk    rn‚ Y d}~dS d}~ww xY w)z=Adding a protocol with a negative number raises an exception.éÿÿÿÿrU   )z'Added protocol must be positive or zeroN©r   r=   r>   r   ÚDatagramProtocolrV   rW   rX   rY   s     r   ÚtestAddingBadProtos_TooSmallz(RawUDPTests.testAddingBadProtos_TooSmall:  sˆ   € åÔ!Ñ#Ô#ˆð	WØ�JŠJ�r�8Ô4Ñ6Ô6Ñ7Ô7Ð7õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐEÒEÐEØàð �����øøøøð	øøøó   •'A Á
A-ÁA(Á(A-c                óà   — t          j        ¦   «         }	 |                     dt          j        ¦   «         ¦  «         t          d¦  «        ‚# t          $ r}|j        dk    rn‚ Y d}~dS d}~ww xY w)ú<Adding a protocol with a number >=2**16 raises an exception.i   rU   ©z"Added protocol must fit in 16 bitsNr^   rY   s     r   ÚtestAddingBadProtos_TooBigz&RawUDPTests.testAddingBadProtos_TooBigG  sˆ   € åÔ!Ñ#Ô#ˆð	WØ�JŠJ�u�hÔ7Ñ9Ô9Ñ:Ô:Ð:õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐ@Ò@Ð@Øàð �����øøøøð	øøøra   c                óà   — t          j        ¦   «         }	 |                     dt          j        ¦   «         ¦  «         t          d¦  «        ‚# t          $ r}|j        dk    rn‚ Y d}~dS d}~ww xY w)rc   i  rU   rd   Nr^   rY   s     r   ÚtestAddingBadProtos_TooBig2z'RawUDPTests.testAddingBadProtos_TooBig2T  sˆ   € åÔ!Ñ#Ô#ˆð	WØ�JŠJ�y¥(Ô";Ñ"=Ô"=Ñ>Ô>Ð>õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐ@Ò@Ð@Øàð �����øøøøð	øøøra   N)r   r   )r    r!   r"   rB   rH   rL   rO   rQ   r[   r`   re   rg   r#   r   r   r%   r%   #   sâ   € € € € € ð 
ð  
ð  
ð  
ðD4
ð 4
ð 4
ð 4
ðl+
ð +
ð +
ð +
ðZ
ð 
ð 
ð 
ð4h
ð h
ð h
ð h
ðTWð Wð Wð WðWð Wð Wð WðWð Wð Wð WðWð Wð Wð Wð Wð Wr   r%   N)Ú
__future__r   Útwisted.internetr   Útwisted.pairr   Útwisted.trialr   r_   r   ÚTestCaser%   r#   r   r   ú<module>rm      sÉ   ðð #Ð "Ð "Ð "Ð "Ð "à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð ð #Ð "Ð "Ð "Ð "Ð "ð
ð 
ð 
ð 
ð 
�Ô*ñ 
ô 
ð 
ð.|Wð |Wð |Wð |Wð |W�(Ô#ñ |Wô |Wð |Wð |Wð |Wr   