
    f              
           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y)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y)ForwardServerz#A server to use for ssh forwarding.TN)__name__
__module____qualname____doc__daemon_threadsallow_reuse_address     U/var/www/cvtools/html/venv/lib/python3.12/site-packages/jupyter_client/ssh/forward.pyr   r   !   s    -Nr   r   c                   4    e Zd ZdZej
                  d        Zy)HandlerzA handle for server requests.c           	      >   	 | j                   j                  d| j                  | j                  f| j                  j                               }|/t        j                  d| j                  | j                  fz         yt        j                  dj                  | j                  j                         |j                         | j                  | j                  f             	 t        j                  | j                  |gg g       \  }}}| j                  |v r;| j                  j                  d      }t        |      dk(  rnQ|j                  |       ||v r;|j                  d      }t        |      dk(  rn| j                  j                  |       |j                          | j                  j                          t        j                  d       y# t        $ rB}t        j                  d| j                  | j                  t        |      fz         Y d}~yd}~ww xY w)	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}i   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((*D <LLK??DOO45 :AA((*  "$//2	
 mmT\\4$8"bAGAq!||q ||((.t9>		$qyyyt9>!!$'  	

%&C  	LL6$//4??\`ab\c9dd 		s   AG 	H8HHN)r   r   r   r	   tno_type_checkr)   r   r   r   r   r   (   s    '__)' )'r   r   
local_portremote_hostremote_port	transportreturnc                 h     G fddt               }t        d| f|      j                          y)zForward an ssh tunnel.c                        e Zd ZW  ZW ZW Zy)!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   s.    " "G "
 ;
+Y7EEGr   r6   )r	   loggingr   socketservertypingr*   	getLoggerr   ThreadingTCPServerr   BaseRequestHandlerr   intstrAnyr6   __all__r   r   r   <module>rA      s   0    			5	!L33 -'l-- -'`Hs H H3 HSTSXSX H]a H 
r   