+
    üÐjõ.  ã                   óº   € R t ^ RIHt ^ RIHt ^RIHt ^RIHt Rt	]	RRRRR3R	 R
 llt
]	RRRRR3R R llt]	RRRR3R R llt ! R R]P                  4      tR# )z7
Test cases for L{twisted.protocols.haproxy.V2Parser}.
)Úaddress)Úunittest)Ú	_v2parser)ÚInvalidProxyHeaders   

 
QUIT
ó   !s    $s   �"¸c                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\         /# ©é   ÚsigÚverComÚfamProtoÚ
addrLengthÚaddrsÚportsÚreturn©Úbytes)Úformats   "ÚN/usr/lib/python3/dist-packages/twisted/protocols/haproxy/test/test_v2parser.pyÚ__annotate__r      óW   € ÷ #@ñ #@Ü	ð#@äð#@ô ð#@ô ð	#@ô
 ð#@ô ð#@ô ñ#@ó    c                óJ   € W,           V,           V,           V,           V,           # )a
  
Construct a version 2 IPv6 header with custom bytes.

@param sig: The protocol signature; defaults to valid L{V2_SIGNATURE}.
@type sig: L{bytes}

@param verCom: Protocol version and command.  Defaults to V2 PROXY.
@type verCom: L{bytes}

@param famProto: Address family and protocol.  Defaults to AF_INET6/STREAM.
@type famProto: L{bytes}

@param addrLength: Network-endian byte length of payload.  Defaults to
    description of default addrs/ports.
@type addrLength: L{bytes}

@param addrs: Address payload.  Defaults to C{::1} for source and
    destination.
@type addrs: L{bytes}

@param ports: Source and destination ports.  Defaults to 8080 for source
    8888 for destination.
@type ports: L{bytes}

@return: A packet with header, addresses, and ports.
@rtype: L{bytes}
© ©r
   r   r   r   r   r   s   &&&&&&r   Ú_makeHeaderIPv6r      ó!   € ðF �<˜(Õ" ZÕ/°%Õ7¸%Õ?Ð?r   ó   s    s       c                ól   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         R\         /# r   r   )r   s   "r   r   r   6   r   r   c                óJ   € W,           V,           V,           V,           V,           # )a  
Construct a version 2 IPv4 header with custom bytes.

@param sig: The protocol signature; defaults to valid L{V2_SIGNATURE}.
@type sig: L{bytes}

@param verCom: Protocol version and command.  Defaults to V2 PROXY.
@type verCom: L{bytes}

@param famProto: Address family and protocol.  Defaults to AF_INET/STREAM.
@type famProto: L{bytes}

@param addrLength: Network-endian byte length of payload.  Defaults to
    description of default addrs/ports.
@type addrLength: L{bytes}

@param addrs: Address payload.  Defaults to 127.0.0.1 for source and
    destination.
@type addrs: L{bytes}

@param ports: Source and destination ports.  Defaults to 8080 for source
    8888 for destination.
@type ports: L{bytes}

@return: A packet with header, addresses, and ports.
@rtype: L{bytes}
r   r   s   &&&&&&r   Ú_makeHeaderIPv4r    6   r   r   ó   1s    Øc                ó`   € V ^8„  d   QhR\         R\         R\         R\         R\         R\         /# )r	   r
   r   r   r   r   r   r   )r   s   "r   r   r   \   sD   € ÷ #8ñ #8Ü	ð#8äð#8ô ð#8ô ð	#8ô
 ð#8ô ñ#8r   c                ó<   € W,           V,           V,           V,           # )a°  
Construct a version 2 IPv4 header with custom bytes.

@param sig: The protocol signature; defaults to valid L{V2_SIGNATURE}.
@type sig: L{bytes}

@param verCom: Protocol version and command.  Defaults to V2 PROXY.
@type verCom: L{bytes}

@param famProto: Address family and protocol.  Defaults to AF_UNIX/STREAM.
@type famProto: L{bytes}

@param addrLength: Network-endian byte length of payload.  Defaults to 108
    bytes for 2 null terminated paths.
@type addrLength: L{bytes}

@param addrs: Address payload.  Defaults to C{/home/tests/mysockets/sock}
    for source and destination paths.
@type addrs: L{bytes}

@return: A packet with header, addresses, and8 ports.
@rtype: L{bytes}
r   )r
   r   r   r   r   s   &&&&&r   Ú_makeHeaderUnixr$   \   s   € ðF �<˜(Õ" ZÕ/°%Õ7Ð7r   c                   óÔ  a € ] tR t^‚t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R  lR! ltV 3R" lR# ltV 3R$ lR% ltV 3R& lR' ltV 3R( lR) ltV 3R* lR+ ltV 3R, lR- ltV 3R. lR/ ltV 3R0 lR1 ltR2tV tR3# )4ÚV2ParserTestsz7
Test L{twisted.protocols.haproxy.V2Parser} behaviour.
c                ó   <€ V ^8„  d   QhRR/# ©r	   r   Nr   )r   Ú__classdict__s   "€r   r   ÚV2ParserTests.__annotate__‡   ó   ø€ ÷ :ñ : Dñ :r   c                óv   € \        4       pV P                  \        P                  P	                  V4      4       R# )z<
Test if a well formed IPv4 header is parsed without error.
N)r    Ú
assertTruer   ÚV2ParserÚparse©ÚselfÚheaders   & r   Útest_happyPathIPv4Ú V2ParserTests.test_happyPathIPv4‡   ó)   € ô !Ó"ˆØ�‰œ	×*Ñ*×0Ñ0°Ó8Ö9r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   Ž   r+   r   c                óv   € \        4       pV P                  \        P                  P	                  V4      4       R# )z<
Test if a well formed IPv6 header is parsed without error.
N)r   r-   r   r.   r/   r0   s   & r   Útest_happyPathIPv6Ú V2ParserTests.test_happyPathIPv6Ž   r5   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   •   r+   r   c                óv   € \        4       pV P                  \        P                  P	                  V4      4       R# )z<
Test if a well formed UNIX header is parsed without error.
N)r$   r-   r   r.   r/   r0   s   & r   Útest_happyPathUnixÚ V2ParserTests.test_happyPathUnix•   r5   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   œ   s   ø€ ÷ 	
ñ 	
 tñ 	
r   c                ó|   € \        RR7      pV P                  \        \        P                  P
                  V4       R# )z>
Test if an invalid signature block raises InvalidProxyError.
)r
   Ns               ©r    ÚassertRaisesr   r   r.   r/   r0   s   & r   Útest_invalidSignatureÚ#V2ParserTests.test_invalidSignatureœ   s1   € ô ! \Ô2ˆØ×ÑÜÜ×Ñ×$Ñ$Øö	
r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   §   ó   ø€ ÷ 	
ñ 	
 Tñ 	
r   c                ó|   € \        RR7      pV P                  \        \        P                  P
                  V4       R# )z6
Test if an invalid version raises InvalidProxyError.
r   ©r   Nr@   r0   s   & r   Útest_invalidVersionÚ!V2ParserTests.test_invalidVersion§   ó1   € ô !¨Ô0ˆØ×ÑÜÜ×Ñ×$Ñ$Øö	
r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   ²   rE   r   c                ó|   € \        RR7      pV P                  \        \        P                  P
                  V4       R# )z6
Test if an invalid command raises InvalidProxyError.
ó   #rG   Nr@   r0   s   & r   Útest_invalidCommandÚ!V2ParserTests.test_invalidCommand²   rJ   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   ½   s   ø€ ÷ 	
ñ 	
 Dñ 	
r   c                ó|   € \        RR7      pV P                  \        \        P                  P
                  V4       R# )z5
Test if an invalid family raises InvalidProxyError.
ó   @©r   Nr@   r0   s   & r   Útest_invalidFamilyÚ V2ParserTests.test_invalidFamily½   ó1   € ô !¨'Ô2ˆØ×ÑÜÜ×Ñ×$Ñ$Øö	
r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   È   s   ø€ ÷ 	
ñ 	
 4ñ 	
r   c                ó|   € \        RR7      pV P                  \        \        P                  P
                  V4       R# )z7
Test if an invalid protocol raises InvalidProxyError.
ó   $rS   Nr@   r0   s   & r   Útest_invalidProtoÚV2ParserTests.test_invalidProtoÈ   rV   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   Ó   ó   ø€ ÷ +ñ + tñ +r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )zE
Test that local does not return endpoint data for IPv4 connections.
ó    rG   N©r    r   r.   r/   ÚassertFalseÚsourceÚdestination©r1   r2   Úinfos   &  r   Útest_localCommandIpv4Ú#V2ParserTests.test_localCommandIpv4Ó   óJ   € ô !¨Ô0ˆÜ×!Ñ!×'Ñ'¨Ó/ˆØ×Ñ˜Ÿ™Ô%Ø×Ñ˜×)Ñ)Ö*r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   Ü   r]   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )zE
Test that local does not return endpoint data for IPv6 connections.
r_   rG   N©r   r   r.   r/   ra   rb   rc   rd   s   &  r   Útest_localCommandIpv6Ú#V2ParserTests.test_localCommandIpv6Ü   rh   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   å   r]   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )zE
Test that local does not return endpoint data for UNIX connections.
r_   rG   N©r$   r   r.   r/   ra   rb   rc   rd   s   &  r   Útest_localCommandUnixÚ#V2ParserTests.test_localCommandUnixå   rh   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   î   ó   ø€ ÷ 	Eñ 	E tñ 	Er   c                óp  € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P                  VP
                  \        P                  4       V P	                  VP                  4       V P                  VP                  \        P                  4       R# )z=
Test that proxy returns endpoint data for IPv4 connections.
r   rG   N)
r    r   r.   r/   r-   rb   ÚassertIsInstancer   ÚIPv4Addressrc   rd   s   &  r   Útest_proxyCommandIpv4Ú#V2ParserTests.test_proxyCommandIpv4î   ó|   € ô !¨Ô0ˆÜ×!Ñ!×'Ñ'¨Ó/ˆØ�‰˜Ÿ™Ô$Ø×Ñ˜dŸk™k¬7×+>Ñ+>Ô?Ø�‰˜×(Ñ(Ô)Ø×Ñ˜d×.Ñ.´×0CÑ0CÖDr   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   ù   rt   r   c                óp  € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P                  VP
                  \        P                  4       V P	                  VP                  4       V P                  VP                  \        P                  4       R# )z=
Test that proxy returns endpoint data for IPv6 connections.
r   rG   N)
r   r   r.   r/   r-   rb   rv   r   ÚIPv6Addressrc   rd   s   &  r   Útest_proxyCommandIpv6Ú#V2ParserTests.test_proxyCommandIpv6ù   rz   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*     rt   r   c                óp  € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P                  VP
                  \        P                  4       V P	                  VP                  4       V P                  VP                  \        P                  4       R# )z=
Test that proxy returns endpoint data for UNIX connections.
r   rG   N)
r$   r   r.   r/   r-   rb   rv   r   ÚUNIXAddressrc   rd   s   &  r   Útest_proxyCommandUnixÚ#V2ParserTests.test_proxyCommandUnix  rz   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*     r]   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )úF
Test that UNSPEC does not return endpoint data for IPv4 connections.
ó   rS   Nr`   rd   s   &  r   Útest_unspecFamilyIpv4Ú#V2ParserTests.test_unspecFamilyIpv4  óJ   € ô !¨'Ô2ˆÜ×!Ñ!×'Ñ'¨Ó/ˆØ×Ñ˜Ÿ™Ô%Ø×Ñ˜×)Ñ)Ö*r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*     r]   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )úF
Test that UNSPEC does not return endpoint data for IPv6 connections.
rˆ   rS   Nrk   rd   s   &  r   Útest_unspecFamilyIpv6Ú#V2ParserTests.test_unspecFamilyIpv6  r‹   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   !  r]   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )úF
Test that UNSPEC does not return endpoint data for UNIX connections.
rˆ   rS   Nrp   rd   s   &  r   Útest_unspecFamilyUnixÚ#V2ParserTests.test_unspecFamilyUnix!  r‹   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   *  ó   ø€ ÷ +ñ + dñ +r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )r‡   ó   rS   Nr`   rd   s   &  r   Útest_unspecProtoIpv4Ú"V2ParserTests.test_unspecProtoIpv4*  r‹   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   3  r—   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )rŽ   r_   rS   Nrk   rd   s   &  r   Útest_unspecProtoIpv6Ú"V2ParserTests.test_unspecProtoIpv63  r‹   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   <  r—   r   c                óÈ   € \        RR7      p\        P                  P                  V4      pV P	                  VP
                  4       V P	                  VP                  4       R# )r“   ó   0rS   Nrp   rd   s   &  r   Útest_unspecProtoUnixÚ"V2ParserTests.test_unspecProtoUnix<  r‹   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   E  ó   ø€ ÷ 	.ñ 	. 4ñ 	.r   c                óÀ   € Rp\        4       V,           p\        P                  ! 4       pVP                  V4      w  rEV P	                  V4       V P                  WQ4       R# )zE
Test that overflow bits are preserved during feed parsing for IPv4.
ó   TEST DATA

TEST DATAN)r    r   r.   Úfeedr-   ÚassertEqual©r1   Ú	testValuer2   Úparserre   Úoverflows   &     r   Útest_overflowIpv4ÚV2ParserTests.test_overflowIpv4E  óN   € ð 2ˆ	Ü Ó" YÕ.ˆÜ×#Ò#Ó%ˆØŸ™ VÓ,‰ˆØ�‰˜ÔØ×Ñ˜Ö-r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   P  r¦   r   c                óÀ   € Rp\        4       V,           p\        P                  ! 4       pVP                  V4      w  rEV P	                  V4       V P                  WQ4       R# )zE
Test that overflow bits are preserved during feed parsing for IPv6.
r¨   N)r   r   r.   r©   r-   rª   r«   s   &     r   Útest_overflowIpv6ÚV2ParserTests.test_overflowIpv6P  r±   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   [  r¦   r   c                óÀ   € Rp\        4       V,           p\        P                  ! 4       pVP                  V4      w  rEV P	                  V4       V P                  WQ4       R# )zE
Test that overflow bits are preserved during feed parsing for Unix.
r¨   N)r$   r   r.   r©   r-   rª   r«   s   &     r   Útest_overflowUnixÚV2ParserTests.test_overflowUnix[  r±   r   c                ó   <€ V ^8„  d   QhRR/# r(   r   )r   r)   s   "€r   r   r*   f  s   ø€ ÷ 

ñ 

 dñ 

r   c                óv   € Rp\         P                  ! 4       pV P                  \        VP                  V4       R# )z;
Test that an initial payload of less than 16 bytes fails.
s   NEEDMOREDATAN)r   r.   rA   r   r©   )r1   r¬   r­   s   &  r   Útest_segmentTooSmallÚ"V2ParserTests.test_segmentTooSmallf  s2   € ð $ˆ	Ü×#Ò#Ó%ˆØ×ÑÜØ�K‰KØö	
r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r3   r8   r<   rB   rH   rN   rT   rZ   rf   rl   rq   rx   r~   rƒ   r‰   r�   r”   rš   rž   r£   r¯   r´   r¸   r¼   Ú__static_attributes__Ú__classdictcell__)r)   s   @r   r&   r&   ‚   s   ø‡ € ñ÷:ð :÷:ð :÷:ð :÷	
ð 	
÷	
ð 	
÷	
ð 	
÷	
ð 	
÷	
ð 	
÷+ð +÷+ð +÷+ð +÷	Eð 	E÷	Eð 	E÷	Eð 	E÷+ð +÷+ð +÷+ð +÷+ð +÷+ð +÷+ð +÷	.ð 	.÷	.ð 	.÷	.ð 	.÷

ö 

r   r&   Ns                                  sØ   /home/tests/mysockets/sock                                                                                  /home/tests/mysockets/sock                                                                                  )rÂ   Útwisted.internetr   Útwisted.trialr   Ú r   Ú_exceptionsr   ÚV2_SIGNATUREr   r    r$   ÚTestCaser&   r   r   r   Ú<module>rË      s€   ðñõ %Ý "Ý Ý ,àB€ð ØØØ#Ø1Ø&÷#@ðN ØØØ#Ø6Ø&÷#@ðN ØØØ#ð÷#8ôLn
�H×%Ñ%ö n
r   