pub struct Tunnel { /* private fields */ }
Expand description
Handle to an SSH tunnel (TCP/IP forwarding channel).
TCP/IP forwarding channels (RFC 4253, section 7), commonly called “tunnels”, allow you to transmit ordinary TCP/IP sockets over SSH. There are two ways how to obtain a tunnel:
- You can ask the server to connect to an address using
Client::connect_tunnel()
. This is sometimes called “local forwarding”. - You can ask the server to bind to an address and listen for incoming connections. This is sometimes called “remote forwarding” and is not yet implemented.
Implementations§
source§impl Tunnel
impl Tunnel
sourcepub async fn send_data(&self, data: Bytes) -> Result<()>
pub async fn send_data(&self, data: Bytes) -> Result<()>
Send data to the tunnel.
This method returns after all bytes have been accepted by the flow control mechanism and written to the internal send buffer, but before we send them to the socket (or other I/O stream that backs this SSH connection).
sourcepub async fn send_eof(&self) -> Result<()>
pub async fn send_eof(&self) -> Result<()>
Signals that no more data will be sent to this channel.
This method returns after all bytes previously sent to this tunnel have been accepted by the flow control mechanism, but before we write the message to the socket (or other I/O stream that backs this SSH connection).
If the tunnel is closed before you call this method, or if it closes before this method
returns, we quietly ignore this error and return Ok
.