Struct tokio_socks::tcp::socks5::Socks5Listener
source · pub struct Socks5Listener<S> { /* private fields */ }
Expand description
A SOCKS5 BIND client.
Once you get an instance of Socks5Listener
, you should send the
bind_addr
to the remote process via the primary connection. Then, call the
accept
function and wait for the other end connecting to the rendezvous
address.
Implementations§
source§impl Socks5Listener<TcpStream>
impl Socks5Listener<TcpStream>
sourcepub async fn bind<'t, P, T>(
proxy: P,
target: T,
) -> Result<Socks5Listener<TcpStream>>where
P: ToProxyAddrs,
T: IntoTargetAddr<'t>,
pub async fn bind<'t, P, T>(
proxy: P,
target: T,
) -> Result<Socks5Listener<TcpStream>>where
P: ToProxyAddrs,
T: IntoTargetAddr<'t>,
Initiates a BIND request to the specified proxy.
The proxy will filter incoming connections based on the value of
target
.
§Error
It propagates the error that occurs in the conversion from T
to
TargetAddr
.
sourcepub async fn bind_with_password<'a, 't, P, T>(
proxy: P,
target: T,
username: &'a str,
password: &'a str,
) -> Result<Socks5Listener<TcpStream>>where
P: ToProxyAddrs,
T: IntoTargetAddr<'t>,
pub async fn bind_with_password<'a, 't, P, T>(
proxy: P,
target: T,
username: &'a str,
password: &'a str,
) -> Result<Socks5Listener<TcpStream>>where
P: ToProxyAddrs,
T: IntoTargetAddr<'t>,
Initiates a BIND request to the specified proxy using given username and password.
The proxy will filter incoming connections based on the value of
target
.
§Error
It propagates the error that occurs in the conversion from T
to
TargetAddr
.
source§impl<S> Socks5Listener<S>where
S: AsyncSocket + Unpin,
impl<S> Socks5Listener<S>where
S: AsyncSocket + Unpin,
sourcepub async fn bind_with_socket<'t, T>(
socket: S,
target: T,
) -> Result<Socks5Listener<S>>where
T: IntoTargetAddr<'t>,
pub async fn bind_with_socket<'t, T>(
socket: S,
target: T,
) -> Result<Socks5Listener<S>>where
T: IntoTargetAddr<'t>,
Initiates a BIND request to the specified proxy using the given socket to it.
The proxy will filter incoming connections based on the value of
target
.
§Error
It propagates the error that occurs in the conversion from T
to
TargetAddr
.
sourcepub async fn bind_with_password_and_socket<'a, 't, T>(
socket: S,
target: T,
username: &'a str,
password: &'a str,
) -> Result<Socks5Listener<S>>where
T: IntoTargetAddr<'t>,
pub async fn bind_with_password_and_socket<'a, 't, T>(
socket: S,
target: T,
username: &'a str,
password: &'a str,
) -> Result<Socks5Listener<S>>where
T: IntoTargetAddr<'t>,
Initiates a BIND request to the specified proxy using given username, password and socket to the proxy.
The proxy will filter incoming connections based on the value of
target
.
§Error
It propagates the error that occurs in the conversion from T
to
TargetAddr
.
sourcepub fn bind_addr(&self) -> TargetAddr<'_>
pub fn bind_addr(&self) -> TargetAddr<'_>
Returns the address of the proxy-side TCP listener.
This should be forwarded to the remote process, which should open a connection to it.
sourcepub async fn accept(self) -> Result<Socks5Stream<S>>
pub async fn accept(self) -> Result<Socks5Stream<S>>
Consumes this listener, returning a Future
which resolves to the
Socks5Stream
connected to the target server through the proxy.
The value of bind_addr
should be forwarded to the remote process
before this method is called.
Auto Trait Implementations§
impl<S> Freeze for Socks5Listener<S>where
S: Freeze,
impl<S> RefUnwindSafe for Socks5Listener<S>where
S: RefUnwindSafe,
impl<S> Send for Socks5Listener<S>where
S: Send,
impl<S> Sync for Socks5Listener<S>where
S: Sync,
impl<S> Unpin for Socks5Listener<S>where
S: Unpin,
impl<S> UnwindSafe for Socks5Listener<S>where
S: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more