Struct makiko::Tunnel

source ·
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

source

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).

source

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.

Trait Implementations§

source§

impl Clone for Tunnel

source§

fn clone(&self) -> Tunnel

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Tunnel

§

impl Send for Tunnel

§

impl Sync for Tunnel

§

impl Unpin for Tunnel

§

impl !UnwindSafe for Tunnel

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V