§
    Ètºf^<  ã                  ó¼   — d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
  ej        ej        ¦  «         G d„ d¦  «        ¦   «         Z G d„ d	e
j        ¦  «        Zd
S )é    )Úannotations)Ú	interface)ÚipÚraw)Ú
components)Úunittestc                  ó&   — e Zd Zdd„Zdd„Zdd„ZdS ) Ú
MyProtocolÚ	expectingú(list[tuple[bytes, dict[str, str | int]]]ÚreturnÚNonec                ó.   — t          |¦  «        | _        d S ©N)Úlistr   )Úselfr   s     úX/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/pair/test/test_ip.pyÚ__init__zMyProtocol.__init__   s   € Ý˜i™œˆŒˆˆó    ÚdataÚbytesÚpartialÚintÚsourceÚstrÚdestÚprotocolÚversionÚihlÚtosÚtot_lenÚfragment_idÚfragment_offsetÚdont_fragmentÚmore_fragmentsÚttlc           	     ór  — | j         s
J d¦   «         ‚| j                              d¦  «        \  }}t          t          |                     ¦   «         ¦  «        ¦  «        }t          ¦   «         }|D ]3}||         ||         k    sJ d|› d||         ›d||         ›�¦   «         ‚Œ4||k    sJ d|›d|›�¦   «         ‚d S )Nz(Got a packet when not expecting anymore.r   z	Expected ú=z, got )r   Úpopr   ÚsortedÚkeysÚlocals)r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   Ú
expectDataÚexpectKwÚexpectKwKeysÚlocalVariablesÚks                       r   ÚdatagramReceivedzMyProtocol.datagramReceived   så   € ð" Œ~ÐIÐIÐIÑIÔIÐIØ#œ~×1Ò1°!Ñ4Ô4Ñˆ
�Hå�F 8§=¢=¡?¤?Ñ3Ô3Ñ4Ô4ˆÝ™œˆàð 	Jð 	JˆAà˜”˜~¨aÔ0Ò0Ð0Ð0ØI˜1ÐIÐI˜x¨œ{ÐIÐI°NÀ1Ô4EÐIÐIñ 1Ô0Ð0Ð0à˜TÒ!Ð!Ð!Ð#K¨zÐ#KÐ#KÀ4Ð#KÐ#KÑ!Ô!Ð!Ð!Ð!r   ÚnumÚobjectÚprotoc                ó   — d S r   © )r   r3   r5   s      r   ÚaddProtozMyProtocol.addProto.   s   € àˆr   N)r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r   r"   r   r#   r   r$   r   r%   r   r&   r   r   r   )r3   r4   r5   r4   r   r   )Ú__name__Ú
__module__Ú__qualname__r   r2   r8   r7   r   r   r
   r
      sT   € € € € € ð)ð )ð )ð )ðLð Lð Lð Lð:ð ð ð ð ð 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 )ÚIPTestsr   r   c                óþ   — t          j        ¦   «         }t          ddddddddd	d
dddddœfg¦  «        }|                     d|¦  «         |                     ddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚d S ©Nó   foobarr   ú1.2.3.4ú5.6.7.8é   é   é   é   é   é­Þ  éï  é   éÀ   ©r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   ó   T Þ­¾ïÀFEfoobarÚdummy©r   r   r   r   ú5Should not expect any more packets, but still want %r©r   Ú
IPProtocolr
   r8   r2   r   ©r   r5   Úp1s      r   ÚtestPacketParsingzIPTests.testPacketParsing4   sÖ   € Ý”‘”ˆÝð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ððñ
ô 
ˆð, 	�Š�t˜RÑ Ô Ð à×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð$ ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                óT  — t          j        ¦   «         }t          ddddddddd	d
dddddœfddddddddd	d
dddddœfg¦  «        }|                     d|¦  «         |                     ddddd¬¦  «         |                     ddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚d S )Nr@   r   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   ó   quuxú5.4.3.2ú6.7.8.9rM   rN   rO   ó   T Þ­¾ïÀFE	quuxrP   rQ   rS   s      r   ÚtestMultiplePacketszIPTests.testMultiplePacketsd   sD  € Ý”‘”ˆÝð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð'%ñ'
ô '
ˆðP 	�Š�t˜RÑ Ô Ð Ø×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð" 	×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð$ ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                óœ  — t          j        ¦   «         }t          ddddddddd	d
dddddœfg¦  «        }t          ddddddddd	d
dddddœfg¦  «        }|                     d|¦  «         |                     d|¦  «         |                     ddddd¬¦  «         |j        rJ d|j        z  ¦   «         ‚|j        rJ d|j        z  ¦   «         ‚d S r?   rQ   ©r   r5   rT   Úp2s       r   ÚtestMultipleSameProtoszIPTests.testMultipleSameProtos¶   se  € Ý”‘”ˆÝð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ððñ
ô 
ˆõ. ð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ððñ
ô 
ˆð. 	�Š�t˜RÑ Ô Ð Ø�Š�t˜RÑ Ô Ð à×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð$ ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                óª   — t          j        ¦   «         }t          g ¦  «        }|                     d|¦  «         |                     ddddd¬¦  «         d S )NrJ   rM   r   rN   rO   )r   rR   r
   r8   r2   rS   s      r   ÚtestWrongProtoNotSeenzIPTests.testWrongProtoNotSeen  sf   € Ý”‘”ˆÝ˜‰^Œ^ˆØ�Š�q˜"ÑÔÐà×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                ó|  — t          j        ¦   «         }t          ddddddddd	d
dddddœfddddddddd	d
dddddœfg¦  «        }|                     d|¦  «         t          ddddddddd	d
dddddœfddddddddd	d
dddddœfg¦  «        }|                     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@   r   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rW   rX   rY   é
   s   T Þ­¾ïÀ
FE	quuxrN   rO   rM   rZ   s   T Þ­¾ïÀ
FEfoobarrP   rQ   r]   s       r   ÚtestDemuxingzIPTests.testDemuxing  ss  € Ý”‘”ˆÝð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð'%ñ'
ô '
ˆðP 	�Š�t˜RÑ Ô Ð åð à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð& à#$Ø )Ø"+Ø$(Ø#$Ø!Ø Ø#)Ø'-Ø+1Ø)*Ø*+Ø#ðð ðð'%ñ'
ô '
ˆðP 	�Š�t˜RÑ Ô Ð à×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð" 	×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð" 	×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð" 	×Òð
ð ØØØð 	ñ 	
ô 	
ð 	
ð$ ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð ”<ð 	
ð 	
ØCÀbÄlÑRñ	
ô 	
ð 	
ð 	
ð 	
r   c                ó    — t          j        ¦   «         }	 |                     dd¦  «         t          d¦  «        ‚# t          j        $ r Y dS w xY w)z2Adding a wrong level protocol raises an exception.é*   Ú	sillinessú2addProto must raise an exception for bad protocolsN)r   rR   r8   ÚAssertionErrorr   ÚCannotAdapt©r   Úes     r   ÚtestAddingBadProtos_WrongLevelz&IPTests.testAddingBadProtos_WrongLevel»  s_   € åŒM‰OŒOˆð	WØ�JŠJ�r˜;Ñ'Ô'Ð'õ !Ð!UÑVÔVÐVøõ Ô%ð 	ð 	ð 	ØˆDˆDð	øøøs   •: ºAÁAc                óØ   — t          j        ¦   «         }	 |                     dt          g ¦  «        ¦  «         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.éÿÿÿÿrh   )z'Added protocol must be positive or zeroN©r   rR   r8   r
   ri   Ú	TypeErrorÚargsrk   s     r   ÚtestAddingBadProtos_TooSmallz$IPTests.testAddingBadProtos_TooSmallÅ  s‚   € åŒM‰OŒOˆð	WØ�JŠJ�r�: b™>œ>Ñ*Ô*Ð*õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐEÒEÐEØàð �����øøøøð	øøøó   •#A Á
A)ÁA$Á$A)c                óØ   — t          j        ¦   «         }	 |                     dt          g ¦  «        ¦  «         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**32 raises an exception.l        rh   ©z"Added protocol must fit in 32 bitsNrp   rk   s     r   ÚtestAddingBadProtos_TooBigz"IPTests.testAddingBadProtos_TooBigÒ  s‚   € åŒM‰OŒOˆð	WØ�JŠJ�u�j¨™nœnÑ-Ô-Ð-õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐ@Ò@Ð@Øàð �����øøøøð	øøørt   c                óØ   — t          j        ¦   «         }	 |                     dt          g ¦  «        ¦  «         t	          d¦  «        ‚# t
          $ r}|j        dk    rn‚ Y d}~dS d}~ww xY w)rv   l       rh   rw   Nrp   rk   s     r   ÚtestAddingBadProtos_TooBig2z#IPTests.testAddingBadProtos_TooBig2ß  s‚   € åŒM‰OŒOˆð	WØ�JŠJ�y¥*¨R¡.¤.Ñ1Ô1Ð1õ !Ð!UÑVÔVÐVøõ ð 	ð 	ð 	ØŒvÐ@Ò@Ð@Øàð �����øøøøð	øøørt   N)r   r   )r9   r:   r;   rU   r[   r_   ra   rd   rm   rs   rx   rz   r7   r   r   r=   r=   3   sê   € € € € € ð.
ð .
ð .
ð .
ð`P
ð P
ð P
ð P
ðdJ
ð J
ð J
ð J
ðX
ð 
ð 
ð 
ð.`
ð `
ð `
ð `
ðDWð Wð Wð WðWð Wð Wð WðWð Wð Wð WðWð Wð Wð Wð Wð Wr   r=   N)Ú
__future__r   Úzoper   Útwisted.pairr   r   Útwisted.pythonr   Útwisted.trialr   ÚimplementerÚIRawDatagramProtocolr
   ÚTestCaser=   r7   r   r   ú<module>rƒ      sø   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø %Ð %Ð %Ð %Ð %Ð %Ø "Ð "Ð "Ð "Ð "Ð "ð €Ô�sÔ/Ñ0Ô0ð#ð #ð #ð #ð #ñ #ô #ñ 1Ô0ð#ðLwWð wWð wWð wWð wWˆhÔñ wWô wWð wWð wWð wWr   