pub struct Associate<S> { /* private fields */ }
Expand description

Socks5 connection type Associate

Implementations§

source§

impl<S: Default> Associate<S>

source

pub fn local_addr(&self) -> Result<SocketAddr>

Returns the local address that this stream is bound to.

source

pub fn peer_addr(&self) -> Result<SocketAddr>

Returns the remote address that this stream is connected to.

source

pub async fn shutdown(&mut self) -> Result<()>

Shutdown the TCP stream.

source§

impl Associate<NeedReply>

source

pub async fn reply( self, reply: Reply, addr: Address ) -> Result<Associate<Ready>>

Reply the associated UDP socket address to the client.

source§

impl Associate<Ready>

source

pub async fn wait_until_closed(&mut self) -> Result<()>

Wait until the client closes this TCP connection.

Socks5 protocol defines that when the client closes the TCP connection used to send the associate command, the server should release the associated UDP socket.

Trait Implementations§

source§

impl<S: Debug> Debug for Associate<S>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<S> RefUnwindSafe for Associate<S>where S: RefUnwindSafe,

§

impl<S> Send for Associate<S>where S: Send,

§

impl<S> Sync for Associate<S>where S: Sync,

§

impl<S> Unpin for Associate<S>where S: Unpin,

§

impl<S> UnwindSafe for Associate<S>where S: UnwindSafe,

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