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 moreLayout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.