
    Mh              
           d Z ddlZddlZddlZddlZ ej        d          Z G d dej                  Z	 G d dej
                  Zded	ed
edej        ddf
dZdgZdS )a  Sample script showing how to do local port forwarding over paramiko.

This script connects to the requested SSH server and sets up local port
forwarding (the openssh -L option) from a local port through a tunneled
connection to a destination reachable from the SSH server machine.
    Nsshc                       e Zd ZdZdZdZdS )ForwardServerz#A server to use for ssh forwarding.TN)__name__
__module____qualname____doc__daemon_threadsallow_reuse_address     Z/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyter_client/ssh/forward.pyr   r   !   s!        --Nr   r   c                   2    e Zd ZdZej        d             ZdS )HandlerzA handle for server requests.c           	      B   	 | j                             d| j        | j        f| j                                                  }nO# t          $ rB}t                              d| j        | j        t          |          fz             Y d}~dS d}~ww xY w|+t                              d| j        | j        fz             dS t                              d
                    | j                                        |                                | j        | j        f                     	 t          j        | j        |gg g           \  }}}| j        |v rC| j                            d          }t          |          dk    rn]|                    |           ||v rC|                    d          }t          |          dk    rn| j                            |           |                                 | j                                         t                              d	           dS )
zHandle a request.zdirect-tcpipz$Incoming request to %s:%d failed: %sNz9Incoming request to %s:%d was rejected by the SSH server.z,Connected!  Tunnel open {!r} -> {!r} -> {!r}Ti   r   zTunnel closed )ssh_transportopen_channel
chain_host
chain_portrequestgetpeername	Exceptionloggerdebugreprformatselectrecvlensendclose)selfchanerwxdatas          r   handlezHandler.handle+   s   
	%22$/2((** DD
  	 	 	LL6$/4?\`ab\c\c9dd   FFFFF		
 <LLK?DO45   F:AA((**  ""$/2 	
 	
 	
	(mT\4$8"bAAGAq!|q  |((..t99>>		$qyyyyt99>>!!$'''	( 	

%&&&&&s   ?A 
B7B		BN)r   r   r   r	   tno_type_checkr)   r   r   r   r   r   (   s5        ''_)' )' _)' )' )'r   r   
local_portremote_hostremote_port	transportreturnc                      G fddt                     }t          d| f|                                           dS )zForward an ssh tunnel.c                       e Zd Z ZZZdS )!forward_tunnel.<locals>.SubHanderN)r   r   r   r   r   r   )r-   r.   r/   s   r   	SubHanderr3   ^   s         
 
!r   r4   z	127.0.0.1N)r   r   serve_forever)r,   r-   r.   r/   r4   s    ``` r   forward_tunnelr6   X   sl    " " " " " " " " "G " " "
 ;
+Y77EEGGGGGr   r6   )r	   loggingr   socketservertypingr*   	getLoggerr   ThreadingTCPServerr   BaseRequestHandlerr   intstrAnyr6   __all__r   r   r   <module>rA      s    0          		5	!	!    L3   -' -' -' -' -'l- -' -' -'`Hs H H3 HSTSX H]a H H H H 
r   