
    h                    H   S SK Jr  S SKJrJr  S SKJr  S SKJr  S SK	J
r
JrJr  S SKJrJr  S SKJrJr  S SKJrJrJrJr  S S	KJr  \(       a  S S
KJr  S SKJr   " S S\R<                  5      r " S S\R@                  5      r \\ \!\!\"/\\#   4   r$            SS jr%g)    )annotations)TYPE_CHECKINGCallable)error)	transport)deferprotocolreactor)IPv4AddressIPv6Address)DeferredmaybeDeferred)IAddress
IConnectorIListeningPortIReactorTCP)Failure)ConchOptions)SSHUserAuthClientc                  P    \ rS rSr          SS jrS	S jrS	S jrS
S jrSrg)SSHClientFactory   c                4    Xl         X l        X0l        X@l        g N)doptionsverifyHostKeyuserAuthObject)selfr   r   r   r   s        b/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/conch/client/direct.py__init__SSHClientFactory.__init__   s     )**,    c                N    U R                   S   (       a  UR                  5         g g )N	reconnect)r   connect)r   	connectorreasons      r    clientConnectionLost%SSHClientFactory.clientConnectionLost'   s    <<$ %r#   c                h    U R                   c  g U R                   S so0l         UR                  U5        g r   )r   errback)r   r'   r(   r   s       r    clientConnectionFailed'SSHClientFactory.clientConnectionFailed+   s)    66>FFD	6			&r#   c                T   [        U 5      nU R                  S   (       a  U R                  S   Ul        U R                  S   (       a  U R                  S   Ul        U R                  S   (       a  S/UR                  SS& U R                  S   (       a  U R                  S   Ul        U$ )Nciphersmacscompresss   zlibr      zhost-key-algorithms)SSHClientTransportr   supportedCipherssupportedMACssupportedCompressionssupportedPublicKeys)r   addrtranss      r    buildProtocolSSHClientFactory.buildProtocol1   s    "4(<<	"%)\\)%<E"<<"&,,v"6E<<
#07yE''!,<<-.(,5J(KE%r#   )r   r   r   r   N)
r   Deferred[None]r   r   r   _VHKr   r   returnNone)r'   r   r(   r   r?   r@   )r9   r   r?   r4   )	__name__
__module____qualname____firstlineno__r!   r)   r-   r;   __static_attributes__ r#   r    r   r      sF    
-
- 
- 	
-
 *
- 

- 
r#   r   c                  `    \ rS rSr% S\S'   SS jrSSS jjrS rS rS	 r	SS
 jr
S rS rSrg)r4   >   r   factoryc                    Xl         S U l        g r   rI   
unixServer)r   rI   s     r    r!   SSHClientTransport.__init__B   s    15r#   Nc                   ^ ^ T R                   (       a'  [        T R                   R                  5      nS T l         O[        R                  " S 5      nUR                  UU 4S j5        g )Nc                D   > [         R                  R                  TT5      $ r   )r   r4   connectionLost)xr(   r   s    r    <lambda>3SSHClientTransport.connectionLost.<locals>.<lambda>T   s    i22AA$Or#   )rL   r   stopListeningr   succeedaddCallback)r   r(   r   s   `` r    rP   !SSHClientTransport.connectionLostF   sD    ?? doo;;<A"DOd#A	O	
r#   c                    U R                   R                  c  g U R                   R                  S so0R                   l        UR                  [        R                  " X!5      5        g r   )rI   r   r,   r   
ConchError)r   codedescr   s       r    receiveErrorSSHClientTransport.receiveErrorW   sB    <<>>! LLNND<<>			%""4./r#   c                   U R                   R                  c  g U R                   R                  S so0R                   l        [        R                  R	                  XU5        UR                  [        R                  " X!5      5        g r   )rI   r   r   r4   sendDisconnectr,   r   rY   )r   rZ   r(   r   s       r    r_   !SSHClientTransport.sendDisconnect]   sX    <<>>! LLNND<<>$$33DG			%""601r#   c                b    U R                   R                  SUUUS9  U(       a  [        U5        g g )Nz!Received Debug Message: {message})messagealwaysDisplaylang)_logdebugprint)r   rc   rb   rd   s       r    receiveDebugSSHClientTransport.receiveDebugd   s4    		/'	 	 	
 'N r#   c                    U R                   nUc   eUR                  " 5       n[        U[        [        45      (       d   S5       eU R
                  R                  XR                  R                  S5      X5      $ )Nz+Address must have a host to verify against.zutf-8)	r   getPeer
isinstancer   r   rI   r   hostencode)r   pubKeyfingerprintr   peers        r    r    SSHClientTransport.verifyHostKeyn   s{    NN	$$$  ";,
 
 	98	9 
 ||))))""7+V
 	
r#   c                8   U R                   R                  SUS9  [        R                  R	                  X5        UR
                  S:w  aQ  U R                  R                  b9  U R                  R                  S so R                  l        UR                  S 5        g g g )Nz"setting client server to {service})servicezssh-userauth)	re   infor   r4   
setServicenamerI   r   callback)r   rt   r   s      r    rv   SSHClientTransport.setServicey   sq    		;WM$$//><<>)dllnn.H $A||~JJt /I)r#   c                N    U R                  U R                  R                  5        g r   )requestServicerI   r   )r   s    r    connectionSecure#SSHClientTransport.connectionSecure   s    DLL778r#   rK   )rI   r   r?   r@   r   )r(   zFailure | Noner?   r@   )ro   bytesrp   strr?   zDeferred[bool])rA   rB   rC   rD   __annotations__r!   rP   r\   r_   rh   r   rv   r|   rE   rF   r#   r    r4   r4   >   s0    6
"02	
9r#   r4   c                    [         R                  " 5       n[        XRX45      n[        [        5      R                  XU5        U$ r   )r   r   r   r   r
   
connectTCP)rm   portr   r   r   r   rI   s          r    r&   r&      s6     (Aq=IG##D8Hr#   N)rm   r   r   intr   r   r   r>   r   r   r?   r=   )&
__future__r   typingr   r   twisted.conchr   twisted.conch.sshr   twisted.internetr   r	   r
   twisted.internet.addressr   r   twisted.internet.deferr   r   twisted.internet.interfacesr   r   r   r   twisted.python.failurer   twisted.conch.client.optionsr   twisted.conch.ssh.userauthr   ClientFactoryr   r4   r~   r   boolr>   r&   rF   r#   r    <module>r      s    # *  ' 5 5 = :  +9<!x-- !HC955 C9L #UE37$GH




 
 	

 &
 
r#   